先使用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使用,能够实现的功能至关多。