有時(shí)候會(huì)使用腳本完成一系列的自動(dòng)化工作腾么,工作完成后還需要郵件通知相關(guān)人員解虱,此時(shí)可以使用第三方的工具:SendEmail,最新版本sendEmail-v1.56.tar.gz
下載地址:http://caspian.dotconf.net/menu/Software/SendEmail/
sendEmil的使用范例:
#!/bin/bash
email_reciver="oneway@163.com lin@126.com"
#發(fā)送者郵箱
email_sender=373850874@qq.com
#郵箱用戶名
email_username=373850874
#郵箱密碼
#使用qq郵箱進(jìn)行發(fā)送需要注意:首先需要開啟:POP3/SMTP服務(wù)殴泰,其次發(fā)送郵件的密碼需要使用在開啟POP3/SMTP服務(wù)時(shí)候騰訊提供的第三方客戶端登陸碼于宙。
email_password=mialbjhzsmuobigf
file1_path="附件一路徑"
file2_path="附件二路徑"
#smtp服務(wù)器地址
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
要使用腳本發(fā)送郵件活喊,必須設(shè)置發(fā)送郵箱開啟IMAP/SMTP服務(wù)盗尸。否則將會(huì)報(bào)錯(cuò)。
IMAP用含,即Internet Message Access Protocol(互聯(lián)網(wǎng)郵件訪問協(xié)議)离咐,您可以通過這種協(xié)議從郵件服務(wù)器上獲取郵件的信息谱俭、下載郵件等奉件。IMAP與POP類似,都是一種郵件獲取協(xié)議昆著。
IMAP和POP有什么區(qū)別县貌?
POP允許電子郵件客戶端下載服務(wù)器上的郵件,但是您在電子郵件客戶端的操作(如:移動(dòng)郵件凑懂、標(biāo)記已讀等),這是不會(huì)反饋到服務(wù)器上的摆碉,比如:您通過電子郵件客戶端收取了QQ郵箱中的3封郵件并移動(dòng)到了其他文件夾跑揉,這些移動(dòng)動(dòng)作是不會(huì)反饋到服務(wù)器上的现拒,也就是說脱衙,QQ郵箱服務(wù)器上的這些郵件是沒有同時(shí)被移動(dòng)的 。但是IMAP就不同了瞧预,電子郵件客戶端的操作都會(huì)反饋到服務(wù)器上圆丹,您對(duì)郵件進(jìn)行的操作(如:移動(dòng)郵件玖瘸、標(biāo)記已讀等)弧可,服務(wù)器上的郵件也會(huì)做相應(yīng)的動(dòng)作凿将。也就是說,IMAP是“雙向”的妹孙。
同時(shí)省店,IMAP可以只下載郵件的主題雹舀,只有當(dāng)您真正需要的時(shí)候源梭,才會(huì)下載郵件的所有內(nèi)容。
問題 2
我使用的系統(tǒng)是Mac OSX EI Capitan, 運(yùn)行命令時(shí)報(bào)錯(cuò)如下:
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
可是接下來的問題又出現(xiàn)了,當(dāng)你修改完成后卻無法保存,被告知權(quán)限不夠醉者,可是你明明使用的是sudo剥槐,超級(jí)管理員權(quán)限温圆。
這是由于 OSX EI Capitan之后蘋果采用了“Rootless”技術(shù)來保護(hù)系統(tǒng)內(nèi)核膝蜈,用戶將沒有權(quán)限操作系統(tǒng)文件。但是不要緊
蘋果并沒有把路封死。
執(zhí)行以下命令:
% dsenableroot
username = wangwei
user password:
root password:
verify root password:
dsenableroot:: ***Successfully enabled root user.
命令執(zhí)行后可以使sudo 獲取正真的Root用戶權(quán)限宇驾。sudo root用戶的密碼就是你剛剛設(shè)置的密碼。
如果你希望自己的賬戶擁有root權(quán)限办桨,那么你也可以通過添加 -U 參數(shù)來達(dá)到這一目的:
dsenableroot -u wangwei
#其中wangwei為你的用戶名
此時(shí)你就可以更改/usr/share/perl5/IO/Socket/SSL.pm了。
關(guān)于root權(quán)限問題捐川,蘋果既然使用了Rootless技術(shù)來保護(hù)內(nèi)核雖然給我們?cè)斐闪艘恍┞闊┭页荩且欢ㄊ怯兴牡览淼陌热绺影踩砸ィ乐沽苏`操作等乞封。
所以我們獲取到最高權(quán)限后,最好再取消Root權(quán)限
取消用戶的Root權(quán)限
取消用戶Root權(quán)限只需要在命令后加參數(shù):-d (disable)
% dsenableroot -d
username = wangwei (或者是root)
user password:
dsenableroot:: ***Successfully disabled root user.
取消特定用戶的Root權(quán)限:
dsenableroot -d -u wangwei
關(guān)閉“Rootless”
sudo nvram boot-args="rootless=0"; sudo reboot
文章參考
1晋修, http://osxdaily.com/2015/02/19/enable-disable-root-command-line-mac/
2趴拧, https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man8/dsenableroot.8.html