秀米云香港服务器

安装配置msmtp1、下载、解压 msmtp

先使用putty等工具登陆ssh

序列号 CPU RAM HDD 带宽 售价(美元) 免费试用
香港服务器1 E5-2620 32G 1T HDD 50M/无限流量 $196.00 立即申请
香港服务器2 E5-2650 32G 1T HDD 50M/无限流量 $256.00 立即申请
香港服务器3 E5-2680 32G 1T HDD 50M/无限流量 $316.00 立即申请
香港服务器4 E5-2690 32G 1T HDD 50M/无限流量 $336.00 立即申请
香港服务器5 E5-2697 32G 1T HDD 50M/无限流量 $376.00 立即申请
香港服务器6 E5-2620*2 32G 1T HDD 50M/无限流量 $376.00 立即申请
香港服务器7 E5-2650*2 32G 1T HDD 50M/无限流量 $436.00 立即申请
香港服务器8 E5-2680*2 32G 1T HDD 50M/无限流量 $476.00 立即申请
香港服务器9 E5-2690*2 32G 1T HDD 50M/无限流量 $556.00 立即申请
香港服务器10 E5-2697*2 32G 1T HDD 50M/无限流量 $596.00 立即申请
香港服务器11 E5-2680v4*2 32G 1T HDD 50M/无限流量 $696.00 立即申请
香港服务器12 E5-2698v4*2 32G 1T HDD 50M/无限流量 $796.00 立即申请

wgethttp://downloads.sourceforge.net/msmtp/msmtp-1.4.16.tar.bz2?modtime=1217206451&big_mirror=0tarjxvfmsmtp-1.4.16.tar.bz2

最新版本参见:http://msmtp.sourceforge.net/download.html

2、安装cdmsmtp-1.4.16./configure--prefix=/usr/local/msmtpmakemakeinstall3、配置msmtp账号

切换到,cd /usr/local/msmtp

新建文件夹etc,

mkdiretcmkdir/var/msmtp

使用vi新建文件,输入:vi /usr/local/msmtp/etc/msmtprc ,编辑内容如下:

#Setdefaultvaluesforallfollowingaccounts.defaultslogfile/var/log/msmtp/msmtp.log#TheSMTPserveroftheprovider.accountmysmtp#SMTP邮件服务器地址hostsmtp.crsay.com#发送的邮件Emailfromtest@crsay.comauthlogin#邮件服务器登录账号usermysmtp@crsay.com#邮件服务器登陆密码password123456#Setadefaultaccountaccountdefault:mysmtp

Esc,shift+:进入命令模式,输入wq,保存退出。

由于password是明码,所以我们需要修改此文件的权限

chmod600msmtprc4、测试

为了方便调用,增加个软链接

ln-s/usr/bin/msmtp/usr/local/msmtp/bin/msmtp

测试

msmtpyouremail@test.com

输入任意字符,然后按Ctrl+D退出,查看邮件是否收到。

由于设置了日志,可以到 /var/log/msmtp/msmtp.log,查看日志,发信成功失败都会有记录。

通过上面的步骤就可以发邮件了,这里发邮件还是使用的是SMTP发的,msmtp相当于一个第三方工具。

在Linux系统内默认使用mail程序调用sendmail来发送邮件,而PHP程序里也是通过mail函数来发送,那么,我们再做如下更改,让mail程序默认使用msmtp,如下:

在命令行和PHP程序内使用mail发送邮件的配置

修改/etc/php.ini

更改sendmail路径

#sendmail_path=/usr/sbin/sendmail-t-isendmail_path=/usr/bin/msmtp-t#msmtp1.4不需要-i参数

编辑/etc/mal.rc 新增一行:

setsendmail=/usr/bin/msmtp

至此,在命令行使用mail程序和在php程序里发送邮件的准备就完成了。

在命令行里直接

mail-s"MailTitle"username@mail.com

然后输入邮件内容,按Ctrl+d退出即可

在php程序里使用

mail($to,$subject,$body,$header,"-amy-acct1")

一个简单的PHP发送示例

用mail发送的时候使用的root用户,而是用PHP发送的时候一般是单独的web服务帐户如apache/noboday或nginx等,这些帐户没有读取msmtp账户的权限,会导致无法读取配置程序,从而发送失败,解决办法只能是另外指定单独的配置文件

附1、Logwatch应用msmtp实例

修改Logwatch配置文件:

vim /usr/share/logwatch/default.conf/logwatch.conf

LogDir=/var/logTmpDir=/var/cache/logwatchMailTo=cracada@gmail.comMailFrom=1.2.3.4Print=No#Save=/tmp/logwatch#Archives=Yes#Range=AllRange=yesterdayDetail=10#Service=ftpd-messages#Processesftpdmessagesin/var/log/messages#Service=ftpd-xferlog#Processesftpdmessagesin/var/log/xferlog#MaybeyouonlywantedreportsonPAMmessages,thenyouwoulduse:#Service=pam_pwdb#PAM_pwdbmessages-usuallyquiteabit#Service=pam#GeneralPAMmessages...usuallynotmany#LogFile=messages#mailer="sendmail-t"mailer="/usr/local/msmtp/bin/msmtp-t"#HostLimit=Yes

输入logwatch,等执行完毕,去收信即可

如果收信有问题,可以查看msmtp的日志,不论是否发送成功都有记录

附2、安装配置mutt

1、一般Linux都会默认安装mutt,CentOS也不例外

可以使用which mutt查看mutt安装的路径,如果没有安装可以使用 # yum install mutt

2、编辑mutt配置文件

vi /etc/Muttrc ,编辑mutt的总设置,修改以下几行

setfrom=“发送邮件地址”setsendmail=“/usr/local/msmtp/bin/msmtp”setuse_from=yessetrealname=“发件人”seteditor=“vi”

发件地址最好与msmtp设置的账号相同,否则可能会出错。

vi ~/.muttrc , 编辑根目录下的设置

setenvelope_from=yessetfrom=“发送邮件地址”setrealname=“发件人”setuse_from=yessetcharset=“utf-8″setlocale=“utf-8″

3、测试一下mutt是否有效

echo “测试测试” | mutt -s “测试” 测试邮件地址

echo “test” |mutt -s “my_first_test” 23335807@qq.com

下面就可以使用mutt进行邮件备份等工作了,结合cron使用,可以实现的功能相当多。

标题:CentOS下配置MSMTP代替Sendmail发送邮件

地址: https://www.yunhk.xyz/25346.html