許多免費信箱,像是gmail、yahoo、hotmail、line….等,雖然這些免費信箱,當然有提供收發信件的服務,但用來發送大量的郵件時,很容易帳號就會被封鎖起來,若改用虛擬主機所提供的信箱服務,可解決大量發送信件的問題,但卻很容易發出去的信都到垃圾郵件中。
補充: Gmail每日寄信額度500封
前一篇發表了Google Cloud Platform 使用 MailGun 郵件,其實如果不使用Google Cloud Platform也是可以用MailGun 郵件服務
Mailgun 每個月可以有10,000 免費的email 額度,不過也有限制每個小時只能寄送100個信件
MailGun註冊完後需要通過網域驗證,到 DNS 設定一些 TXT、dkim、CNAME、MX 紀錄就可以綁訂網域到 MainGun 上面
設定完後點進去你要設定的網域,看到 Domain Information ,把 Default SMTP Login 跟 Default Password 記起來,在主機上要需要設定SASL驗證
在Google Compute Engine 安裝 postfix 以及SASL驗證工具
1 |
yum install postfix cyrus-sasl-plain cyrus-sasl-md5 -y |
接下來修改/etc/postfix/main.cf (修改前還是要先備份一下main.cf)
1 |
vi /etc/postfix/main.cf |
在main.cf最底下新增內容
1 2 3 4 5 |
mydestination = localhost.localdomain, localhost relayhost = [smtp.mailgun.org]:25 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = static:YOUR_SMTP_LOGIN:YOUR_SMTP_PASSWORD smtp_sasl_security_options = noanonymous |
YOUR_SMTP_LOGIN 就是先前提到的Default SMTP Login
YOUR_SMTP_PASSWORD 就是先前提到的Default Password
重啟 postfix
1 |
/etc/init.d/postfix restart |
測試上面的配置,寄一封信給自己
1 |
echo 'Test passed.' | mail -s Test-Email EMAIL@EXAMPLE.COM |
從mail log 確認信件是否寄出
1 |
tail -n 5 /var/log/maillog |
如果看到類似內容,表示郵件寄信成功,也可以從Mailgun Log 確認郵件
1 2 3 4 5 6 |
# >tail -n 5 /var/log/maillog Aug 14 11:21:49 PFC postfix/qmgr[16507]: 8AFE379B1: removed Aug 14 11:21:49 PFC postfix/smtp[17188]: C586D79B2: to=<EMAIL@EXAMPLE.COM>, relay=smtp.mailgun.org[52.202.86.134]:25, delay=42552, delays=42550/0.01/1.2/0.9, dsn=2.0.0, status=sent (250 Great success) Aug 14 11:21:49 PFC postfix/qmgr[16507]: C586D79B2: removed Aug 14 11:21:49 PFC postfix/smtp[17191]: BE5A279B4: to=<EMAIL@EXAMPLE.COM>, relay=smtp.mailgun.org[34.206.32.229]:25, delay=42507, delays=42505/0.02/1.2/0.97, dsn=2.0.0, status=sent (250 Great success) Aug 14 11:21:49 PFC postfix/qmgr[16507]: BE5A279B4: removed |
如果出現錯誤訊息,先檢查防火牆port 25有沒有打開