十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
使用mail命令

mail命令是mailutils(On Debian)或mailx(On RedHat)包中的一部分,我們可以使用他在命令行里面發(fā)送消息。
如果你的系統(tǒng)沒有安裝mail命令,可以使用下面的方式安裝:
$ sudo apt-get install mailutils (On Debian)
# yum install mailx (On RedHat or CentOS)
現(xiàn)在我們來使用mail命令來發(fā)送帶附件的郵件,如下:
echo "這里輸入你郵件內(nèi)容" | mail -s "郵件標題" -a file.txt 59090939@qq.com
在上面的命令中,-s 參數(shù)用于指定消息主題;-a 參數(shù)指定需要發(fā)送的附件路徑,貌似這個不能發(fā)送多個附件,-v參數(shù)顯示詳細的發(fā)送過程。
當然,我們可以將郵件的內(nèi)容存到一個文件中,比如下面我們把郵件的內(nèi)容存儲到message.txt文件中,然后發(fā)送:
mail -s "郵件標題" -a file.txt 59090939@qq.com < message.txt
這時候的message.txt是以文本內(nèi)容在郵件中顯示的,并不是以附件的形式。
我們在發(fā)送附件的時候出現(xiàn)下面的錯誤:
send-mail: fatal: xiao(40010): message file too big
從上面的錯誤信息可以看出,我們發(fā)送的附件太大了,我們可以通過以下兩種方法來加大附件大小的限制:
第一種:
[root@xiao ~]$ postconf message_size_limit
message_size_limit = 51200000
echo "message_size_limit = 102400000" >> /etc/postfix/main.cf && service postfix reload
Reloading Postfix configuration...done.
第二種:
[root@xiao ~]$ postconf -e message_size_limit=302400000
[root@xiao ~]$ service postfix restart
Shutting down postfix: [ OK ]
Starting postfix: [ OK ]
[root@xiao ~]$ postconf message_size_limit
message_size_limit = 302400000
兩種方法都可以設置
配置郵箱賬戶
Vi /etc/mail.rc 在文件的最后添加如下兩段中的一段,國內(nèi)IP的話一般第一段就可以,國外有些IP要用第二段,安全級別更高
set from=59090939@qq.com
set smtp="smtp.qq.com"
set smtp-auth-user="59090939@qq.com"
set smtp-auth-password="ttvingav"
set smtp-auth=login
或者
set from=59090939@qq.com
set smtp="smtp.qq.com:587"
set smtp-auth-user="59090939@qq.com"
set smtp-auth-password="ttvingavu"
set smtp-auth=login
set smtp-use-starttls
set nss-config-dir=/etc/openldap/certs
使用mutt命令
mutt是一個流行輕量級的電子郵件客戶端命令,http://www.mutt.org/
我們同樣可以使用它發(fā)送帶附件的郵件,如果你的電腦沒有安裝這個命令,請使用下面命令安裝:
$ sudo apt-get install mutt # yum install mutt 源碼安裝 wget ftp://ftp.mutt.org/pub/mutt/mutt-1.11.2.tar.gz tar –zvxf mutt-1.11.2 cd mutt-1.11.2 ./configure --prefix=/usr/local/mutt --enable-pop --enable-smtp --with-ssl --with-sasl 安裝 |
因為測試帳號是QQ郵件,qq郵件使用smtp協(xié)議的時候要求必須使用ssl安全連接,而在mutt里使用安全連接 又必須使用sasl加密,所以上述2個安全組件在編譯安裝的時候得加上。要不然發(fā)送郵件的時候會 出現(xiàn)“SMTP authentication requires SASL”或者另外一個跟ssl有關的錯誤 |
配置郵箱賬戶vi /etc/Muttrc 文件的未尾添加如下內(nèi)容
set use_from=yes
set use_envelope_from=yes
set realname="59090939"
set from="59090939@qq.com"
set smtp_pass="ttvingavu"
set smtp_url="smtps://59090939@smtp.qq.com:465/"
國內(nèi)用465端口,用587會報如下錯誤:
gnutls_handshake: 收到一個意外的 TLS 數(shù)據(jù)包。
無法發(fā)送此信件
現(xiàn)在我們可以使用mutt命令發(fā)送帶附件的郵件了:
echo "這里輸入你郵件內(nèi)容" | mutt -s "郵件標題" -a file.txt 59090939@qq.com
從上面可以看出,mutt 的使用和 mail 命令很類似,更多關于它的使用參數(shù)可以直接 man mutt 查看。
使用msmtp
云方式安裝
$ sudo apt-get install msmtp
# yum install mstp
源碼方式安裝
https://marlam.de/msmtp/
wget https://marlam.de/msmtp/releases/msmtp-1.8.1.tar.xz
xz -d msmtp-1.8.1.tar.xz
tar -xvf msmtp-1.8.1.tar
cd msmtp-1.8.1
yum -y install gnutls gnutls-devel gnutls-utils openssl openssl-devel libidn libidn-devel
如果不yum instll 那么后面可能會季報如下錯:
msmtp: support for TLS is not compiled in
./configure --prefix=/usr/local/msmtp --sysconfdir=/usr/local/msmtp/etc --with-ssl=openssl && sudo make && sudo make install
在用戶的主目錄中創(chuàng)建或編輯msmtp配置文件。我使用VI編輯器來實現(xiàn)這一目標
vi /etc/msmtprc
account gmail
tls on
auth on
host smtp.gmail.com
port 587
user user1@gmail.com
from user1@gmail.com
password ******
或
account qqmail
tls on
auth on
tls_starttls off
tls_trust_file /etc/ssl/certs/ca-bundle.crt
host smtp.qq.com
port 465
user 59090939@qq.com
from 59090939@qq.com
password ttvingav
由于該文件包含密碼等敏感數(shù)據(jù),因此您應分配安全權限
chmod 600 /etc/msmtprc
測試發(fā)送郵件,如果不出意外的,應該可以正常發(fā)出郵件。
echo "hello" |msmtp -a qqmail -C /usr/local/msmtp/etc/msmtprc 59090939@qq.com
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。