如何從命令行或腳本發送電子郵件?我希望能夠通過傳遞接收方和消息來以編程方式運行腳本。
如何從命令行或腳本發送電子郵件?我希望能夠通過傳遞接收方和消息來以編程方式運行腳本。
我知道有兩個程序,可以輕鬆地將Mac配置為從命令行發送電子郵件。
我已經為兩個程序編寫了HOWTO:
在這兩者中,我建議使用 msmtp
。
配置非常複雜,我不確定是否應該在此處複製所有步驟,但是我會提到如果您使用 Homebrew,則可以使用
brew來安裝msmtp。安裝msmtp --with-macosx-keyring
然後剩下的只是設置相關的配置文件了
第一個是 / usr / local / etc / msmtprc
#Begin msmtprc#設置所有以下帳戶的默認值。defaultstls onlogfile〜/。 msmtp.log#第一個gmail地址帳戶example@gmail.comhost smtp.gmail.comport 587protocol smtpauth on example@gmail.comuser example@gmail.comtls ontls_starttls on#下一行至關重要:您必須指向正確的安全GMail的rity證書。#如果不起作用,請訪問http://msmtp.sourceforge.net/documentation.html上的mstmp文檔#以獲取幫助##下一行應全部排在一行上:tls_trust_file / path / to / Thawte根目錄/ Thawte SSLWeb服務器根目錄/ thawte高級服務器CA / Thawte高級服務器CA.pem#設置默認帳戶#您需要為Mailaccount默認設置默認帳戶:example@gmail.com# end msmtprc
請注意, tls_trust_file
行應指向您從 https://www.thawte.com/roots/index.html。
我將其放入〜/ Dropbox / Thawte Roots
中,以便可以在所有Mac上使用它。
然後您需要〜/ .mailrc
文件,以說明msmtp二進製文件所在的位置。如果您使用 brew
,它將是 / usr / local / bin / msmtp
,因此文件如下所示:
set sendmail = “ / usr / local / bin / msmtp”
最後但至關重要的一步是確保您的鑰匙串具有與msmtp期望的格式完全相同的信息:
我認為這涵蓋了大多數細節。如果需要更多詳細信息,請參見 http://www.tuaw.com/2010/05/04/msmtp-a-free-tool-to-send-email-from-terminal/。
郵件-s subject someone@example.com
鍵入您的消息,然後按 Ctrl + D
完成
發送郵件的最基本方法是通過與提供商/網絡的smtp服務器的telnet會話。與服務器聯繫後,在執行每條命令之後,服務器將以“ 250 OK”之類的命令接受命令,或者是否以錯誤消息答复。
所有詳細信息都可以在RFC2821中找到-簡單Google的郵件傳輸協議。這種基本方式非常適合測試發送郵件時為什麼會出錯,但是我認為將其編寫為完整的證明非常複雜。
首先在您的計算機上獲得一個命令行界面通過啟動終端計算機。然後一個接一個地繼續以下命令。
打開到提供程序/網絡的smtp服務器端口25的telnet會話
telnet name_or_ip_of_smtp_server 25
問好,再加上提供商/網絡的互聯網名稱,例如abc.com
EHLO name_of_your_network
a from = return地址是必需的,<和>是命令的一部分
MAIL FROM:<your_email_adress>
給出一個或多個目的地,<和>是一部分
RCPT TO:<destination_email_address>RCPT TO:<second_destination_email_address>RCPT TO:<etc_destination_email_address> tell>
code> DATA
現在服務器應該回答您可以開始發送郵件並進入數據模式
您的數據更多數據等
現在>在一行上僅用點作為字符完成點的數據。
。
服務器返回命令模式,因此您可以退出
QUIT
這對我有用,它是在考慮Lion的情況下編寫的,但適用於Mountain Lion。順便說一句,這是使用Gmail,所以如果您不是...
您無需下載任何內容! (只需設置一個Gmail帳戶)
http://www.anujgakhar.com/2011/12/09/using-macosx-lion-command-line -mail-with-gmail-as-smtp /
為Gmail SMTP配置Postfix編輯文件/etc/postfix/main.cf
sudo vim / etc / postfix / main.cf
,然後在註釋掉的中繼主機下面添加以下內容:-
relayhost = [smtp.gmail.com]: 587smtp_sasl_auth_enable =是postfix / sasl_passwd
,然後輸入以下內容:-
[smtp.gmail.com]:587 username@gmail.com:password
運行以下命令
sudo chmod 600 / etc / postfix / sasl_passwdsudo postmap / etc / postfix / sasl_passwdsudo launchctl stop org.postfix.mastersudo launchctl start org.postfix .master
您已完成……。
現在,您應該可以從命令行中發送電子郵件了,例如將目錄的內容作為樹發送到電子郵件地址
tree / var / www / somefolder |郵件-s“內容” your@yourdomain.com
您可能想簽出 postfixconf,它啟用並配置OS X以從命令行(使用您的輸入)發送電子郵件。
mtcmail是另一種選擇: http://www.macupdate.com/app/mac/33505/mtcmail-cli。
[忽略此附加文本。新增原因:正文必須至少包含30個字符;您輸入了27。]
由於它是基於Unix的,因此可以使用 sendmail 命令。