先使用putty等工具登錄ssh php
wget http://downloads.sourceforge.net/msmtp/msmtp-1.4.16.tar.bz2?modtime=1217206451&big_mirror=0 tar jxvf msmtp-1.4.16.tar.bz2
最新版本參見:http://msmtp.sourceforge.net/download.html html
cd msmtp-1.4.16 ./configure --prefix=/usr/local/msmtp make make install
切換到,cd /usr/local/msmtp nginx
新建文件夾etc, web
mkdir etc mkdir /var/msmtp
使用vi新建文件,輸入:vi /usr/local/msmtp/etc/msmtprc ,編輯內容以下: apache
# Set default values for all following accounts. defaults logfile /var/log/msmtp/msmtp.log # The SMTP server of the provider. account mysmtp # SMTP郵件服務器地址 host smtp.crsay.com # 發送的郵件Email from test@crsay.com auth login # 郵件服務器登陸帳號 user mysmtp@crsay.com # 郵件服務器登錄密碼 password 123456 # Set a default account account default : mysmtp
Esc,shift+:進入命令模式,輸入wq,保存退出。 vim
因爲password是明碼,因此咱們須要修改此文件的權限 服務器
chmod 600 msmtprc
爲了方便調用,增長個軟連接 dom
ln -s /usr/bin/msmtp /usr/local/msmtp/bin/msmtp
測試 ssh
msmtp youremail@test.com
輸入任意字符,而後按Ctrl+D退出,查看郵件是否收到。 ide
因爲設置了日誌,能夠到 /var/log/msmtp/msmtp.log,查看日誌,發信成功失敗都會有記錄。
經過上面的步驟就能夠發郵件了,這裏發郵件仍是使用的是SMTP發的,msmtp至關於一個第三方工具。
在Linux系統內默認使用mail程序調用sendmail來發送郵件,而PHP程序裏也是經過mail函數來發送,那麼,咱們再作以下更改,讓mail程序默認使用msmtp,以下:
修改/etc/php.ini
更改sendmail路徑
#sendmail_path = /usr/sbin/sendmail -t -i sendmail_path = /usr/bin/msmtp -t #msmtp1.4不須要-i參數
編輯/etc/mal.rc 新增一行:
set sendmail=/usr/bin/msmtp
至此,在命令行使用mail程序和在php程序裏發送郵件的準備就完成了。
在命令行裏直接
mail -s "Mail Title" username@mail.com
而後輸入郵件內容,按Ctrl+d退出便可
在php程序裏使用
mail($to,$subject,$body,$header,"-a my-acct1")
一個簡單的PHP發送示例
<?php $status = mail("***@***.com", //這裏修改接收者的地址 "Test", //這是郵件的主題 "Hello \n this test mail", //這是郵件的內容 "from: ****@****.com"); //這裏修改爲發送者的地址 if($status) { echo "發送成功."; } else { echo "發送失敗"; } ?>
修改Logwatch配置文件:
vim /usr/share/logwatch/default.conf/logwatch.conf
LogDir = /var/log TmpDir = /var/cache/logwatch MailTo = cracada@gmail.com MailFrom = 1.2.3.4<syslog@mydomain.com> Print = No #Save = /tmp/logwatch # Archives = Yes # Range = All Range = yesterday Detail = 10 #Service = ftpd-messages # Processes ftpd messages in /var/log/messages #Service = ftpd-xferlog # Processes ftpd messages in /var/log/xferlog # Maybe you only wanted reports on PAM messages, then you would use: #Service = pam_pwdb # PAM_pwdb messages - usually quite a bit #Service = pam # General PAM messages... usually not many #LogFile = messages #mailer = "sendmail -t" mailer = "/usr/local/msmtp/bin/msmtp -t" #HostLimit = Yes
輸入logwatch,等執行完畢,去收信便可
若是收信有問題,能夠查看msmtp的日誌,不管是否發送成功都有記錄
一、通常Linux都會默認安裝mutt,CentOS也不例外
能夠使用which mutt查看mutt安裝的路徑,若是沒有安裝能夠使用 # yum install mutt
二、編輯mutt配置文件
vi /etc/Muttrc ,編輯mutt的總設置,修改如下幾行
set from=「發送郵件地址」 set sendmail=「/usr/local/msmtp/bin/msmtp」 set use_from=yes set realname=「發件人」 set editor=「vi」
發件地址最好與msmtp設置的帳號相同,不然可能會出錯。
vi ~/.muttrc , 編輯根目錄下的設置
set envelope_from=yes set from=「發送郵件地址」 set realname=「發件人」 set use_from=yes set charset = 「utf-8″ set locale = 「utf-8″
三、測試一下mutt是否有效
echo 「測試測試」 | mutt -s 「測試」 測試郵件地址
echo 「test」 |mutt -s 「my_first_test」 23335807@qq.com
下面就能夠使用mutt進行郵件備份等工做了,結合cron使用,能夠實現的功能至關多。