有時候會使用腳本完成一系列的自動化工作,工作完成后還需要郵件通知相關人員,此時可以使用第三方的工具:SendEmail,最新版本sendEmail-v1.56.tar.gz
下載地址:http://caspian.dotconf.net/menu/Software/SendEmail/
sendEmil的使用范例:
#!/bin/bash email_reciver="oneway@163.com lin@126.com" #發送者郵箱 email_sender=373850874@qq.com #郵箱用戶名 email_username=373850874 #郵箱密碼 #使用qq郵箱進行發送需要注意:首先需要開啟:POP3/SMTP服務,其次發送郵件的密碼需要使用在開啟POP3/SMTP服務時候騰訊提供的第三方客戶端登陸碼。 email_password=mialbjhzsmuobigf file1_path="附件一路徑" file2_path="附件二路徑" #smtp服務器地址 email_smtphost=smtp.qq.com email_title="iOS客戶端更新" email_content="謝謝!" ./sendEmail -f ${email_sender} -t ${email_reciver} -s ${email_smtphost} -u ${email_title} -xu ${email_username} -xp ${email_password} -m ${email_content} -a ${file1_path} ${file2_path} -o message-charset=utf-8
問題 1
要使用腳本發送郵件,必須設置發送郵箱開啟IMAP/SMTP服務。否則將會報錯。
IMAP,即Internet Message Access Protocol(互聯網郵件訪問協議),您可以通過這種協議從郵件服務器上獲取郵件的信息、下載郵件等。IMAP與POP類似,都是一種郵件獲取協議。
IMAP和POP有什么區別?
POP允許電子郵件客戶端下載服務器上的郵件,但是您在電子郵件客戶端的操作(如:移動郵件、標記已讀等),這是不會反饋到服務器上的,比如:您通過電子郵件客戶端收取了QQ郵箱中的3封郵件並移動到了其他文件夾,這些移動動作是不會反饋到服務器上的,也就是說,QQ郵箱服務器上的這些郵件是沒有同時被移動的 。但是IMAP就不同了,電子郵件客戶端的操作都會反饋到服務器上,您對郵件進行的操作(如:移動郵件、標記已讀等),服務器上的郵件也會做相應的動作。也就是說,IMAP是“雙向”的。
同時,IMAP可以只下載郵件的主題,只有當您真正需要的時候,才會下載郵件的所有內容。
問題 2
我使用的系統是Mac OSX EI Capitan, 運行命令時報錯如下:
MaxOS: invalid SSL_version specified at /System/Library/Perl/Extras /5.18/IO/Socket/SSL.pm line 368.
解決方案:
打開文件: /usr/share/perl5/IO/Socket/SSL.pm
找到: m{^(!?)(?:(SSL(?:v2|v3|v23|v2/3))|(TLSv1(?:_?[12])?))$}i
替換為:m{^(!?)(?:(SSL(?:v2|v3|v23|v2/3))|(TLSv1[12]?))}i
可是接下來的問題又出現了,當你修改完成后卻無法保存,被告知權限不夠,可是你明明使用的是sudo,超級管理員權限。
這是由於 OSX EI Capitan之后蘋果采用了“Rootless”技術來保護系統內核,用戶將沒有權限操作系統文件。但是不要緊
蘋果並沒有把路封死。
執行以下命令:
% dsenableroot username = wangwei user password: root password: verify root password: dsenableroot:: ***Successfully enabled root user.
命令執行后可以使sudo 獲取正真的Root用戶權限。sudo root用戶的密碼就是你剛剛設置的密碼。
如果你希望自己的賬戶擁有root權限,那么你也可以通過添加 -U 參數來達到這一目的:
dsenableroot -u wangwei
#其中wangwei為你的用戶名
此時你就可以更改/usr/share/perl5/IO/Socket/SSL.pm了。
關於root權限問題,蘋果既然使用了Rootless技術來保護內核雖然給我們造成了一些麻煩,但是一定是有他的道理的,比如更加安全,防止了誤操作等。
所以我們獲取到最高權限后,最好再取消Root權限
取消用戶的Root權限
取消用戶Root權限只需要在命令后加參數:-d (disable)
% dsenableroot -d username = wangwei (或者是root) user password: dsenableroot:: ***Successfully disabled root user.
取消特定用戶的Root權限:
dsenableroot -d -u wangwei
關閉“Rootless”
sudo nvram boot-args="rootless=0"; sudo reboot