php中mail()改用msmtp发送邮件

php中的mail()函数默认调用的是sendmail,这次我将其换成了轻量级的msmtp。在次过程中涉及到:修改配置文件php.ini,创建配置文件msmtprc或(.msmtprc)并修改其权限。

 

创建msmtp的配置文件/etc/msmtprc或~/.msmtprc:

1 account default

2 host smtp.qq.com

3 auth login

4 from [email protected]

5 user [email protected]

6 password yourpassword

7 logfile /usr/local/msmtp/msmtp.log

 

/etc/php5/apache2/php.ini中设置:

sendmail_path = '/usr/bin/msmtp -t -i'

另外一个php.ini文件在/etc/php2/cli中,这是command line中的php配置文件。如果希望在命令行中运行例如"php testmailing.php"类似操作,可以对其做同样修改。至此,命令行中的mail()函数调用成功。

 

之后将msmtprc的权限提至644:

sudo chmod 644 /etc/msmtprc

至此,browser中的mail()函数调用成功。

 

原本只是想试一下php的mail()函数,想不到配置了两天,原因又是权限不够。目前还是对linux不够熟悉,文件的权限真是个大问题。这次虽然解决了问题,不过msmtprc的权限为644,其中还包含了明文密码。安全起见,可以把配置文件存入数据库在进行加密处理,当然这又是后话了。

你可能感兴趣的:(mail)