對(duì)于網(wǎng)站有郵件發(fā)送服務(wù)有需求的用戶來(lái)說(shuō),發(fā)送郵件一般有三種方式:自建郵件服務(wù)器、使用郵件提供服務(wù)商API方式和SMTP方式。自建郵件服務(wù)器需要占用比較多的內(nèi)存且需要額外進(jìn)行比較多的設(shè)置,不適合少量郵件的用戶使用;API方式一般適合從程序開(kāi)發(fā)開(kāi)始就在程序中寫好,一般小用戶都使用開(kāi)源程序;SMTP比較靈活可以使用郵件服務(wù)商或者個(gè)人郵箱的SMTP服務(wù),對(duì)于每天發(fā)送量不多使用SMTP相對(duì)來(lái)說(shuō)也比較方便。大部分程序如Wordpress、Discuz X等常見(jiàn)的程序一般后臺(tái)都有SMTP的設(shè)置,設(shè)置好之后就可以通過(guò)SMTP發(fā)送郵件,但對(duì)于沒(méi)有SMTP相關(guān)設(shè)置的程序來(lái)說(shuō)就無(wú)法正常發(fā)出郵件,今天我們主要就針對(duì)這種情況下使用msmtp調(diào)用SMTP服務(wù)器發(fā)送郵件。
1、msmtp簡(jiǎn)介
msmtp是一款專門負(fù)責(zé)郵件發(fā)送的SMTP客戶端軟件,支持TLS/SSL/STARTTLS、多種認(rèn)證方式、多用戶等。類似的程序其實(shí)很多如古老的mailx、s-nail、ssmtp等,msmtp比較活躍比較好用一些。
2、SMTP服務(wù)商的選擇
首推:阿里云的郵件推送,每天有200封免費(fèi)的額度。
其次:SendGrid、SendinBlue等等都有免費(fèi)發(fā)信額度。
再其次:Microsoft365或其他服務(wù)平臺(tái)提供的SMTP服務(wù)。
最后:個(gè)人郵箱的SMTP服務(wù)。
在使用上建議使用TLS加密或STARTTLS加密,不建議使用未加密的25端口進(jìn)行發(fā)送郵件,首先未加密可能會(huì)存在泄露其次很多VPS或云服務(wù)商都已經(jīng)采取了默認(rèn)封鎖25端口的設(shè)置。
3、msmtp安裝
CentOS/RHEL/Fedora/Alma/Rocky安裝方法:
1
2
|
yum -y install epel-release yum -y install msmtp |
Debian/Ubuntu/Deepin安裝方法:
1
|
apt-get install -y msmtp |
4、msmtp配置
配置文件位置:/etc/msmtprc 該文件不一定自動(dòng)創(chuàng)建,下面以SSL/TLS加密為例:
defaults
tls on
#如果不是SSL/TLS加密方式改成off
tls_starttls off
#如果是STARTTLS加密改成on
tls_certcheck off
logfile /var/log/msmtp.log
account aliyun
#account后面為自定義的名字,隨便都可以,只要與最后面的account default:后面的一樣就可以
host smtpdm.aliyun.com
#host后為SMTP服務(wù)器地址
port 465
#端口TLS加密的一般為465,根據(jù)實(shí)際情況而定,不建議使用未加密的25端口,很多服務(wù)商會(huì)屏蔽該端口
auth plain
user xxx@vpser.net
from xxx@vpser.net
password 密碼
account default : aliyun
上面 xxx@vpser.net 為用戶名一般為郵箱地址,密碼一般為郵箱的登錄密碼,QQ、Gmail等一些SMTP為單獨(dú)的授權(quán)碼或密碼之類的。
保存完配置文件就可以進(jìn)行測(cè)試,看一下郵件能否正常發(fā)送。
執(zhí)行:
echo "來(lái)自msmtp發(fā)出的測(cè)試郵件" | msmtp 自己的郵箱
郵箱地址用于測(cè)試看是否能正常收到郵件。
5、PHP郵件發(fā)送配置
以LNMP為例,php配置文件位置:/usr/local/php/etc/php.ini 編輯該文件,查找 sendmail_path
更改為:sendmail_path = /usr/bin/msmtp -t
如果前面有 ; 將該分號(hào)去掉,保存。
重啟php-fpm或Apache生效。
PHP上的測(cè)試就簡(jiǎn)單多了,可以直接在LNMP的p.php 探針頁(yè)最下面"郵件發(fā)送檢測(cè)"選項(xiàng)下面填寫郵箱即可。
6、可能會(huì)遇到的問(wèn)題
6.1、Ubuntu/Debian下可能會(huì)無(wú)法記錄日志,解決方法:
1
2
|
apt install -y apparmor-utils aa-disable /etc/apparmor.d/usr.bin.msmtp |
6.2、如在安裝使用過(guò)程中有問(wèn)題可以在本文下方或者論壇留言。
>>轉(zhuǎn)載請(qǐng)注明出處:VPS偵探 本文鏈接地址:https://www.vpser.net/build/msmtp-smtp-mail-server.html