Linux区


阿里云Ubuntu服务器php开启mail()函数的简单方法,亲测有效

云服务器环境:

运营商:阿里云(套路云非常nb,全面封闭25端口,导致网上提供的postfix或sendmail的方法均告无效,折腾多时才发现这个坑)
操作系统:Ubuntu 16.04(跟CentOS的配置方式可能有所不同)
Web服务套件:XAMPP(其他类型的web服务套件通用,修改Php.ini中的sendmail路径即可)

步骤(用root身份运行):

1,apt install msmtp

2,修改/opt/lampp/etc/php.ini的sendmail_path行,去掉注释,内容如下。注意不要掉了最后的“-t”。

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

3,建立/etc/msmtprc文件,内容如下:

# Set default values for all following accounts.
defaults
auth on
tls on
tls_trust_file /usr/share/ca-certificates/mozilla/Thawte_Premium_Server_CA.crt
logfile ~/.msmtp.log

# 163
account 163
host smtp.163.com
port 465
from abcxyz@163.com
user abcxyz@163.com
password 123456
tls_starttls off
tls_trust_file /etc/ssl/certs/ca-certificates.crt

# gmail
account gmail
host smtp.gmail.com
port 465
from abcxyz@gmail.com
user abcxyz@gmail.com
password 123456
tls_starttls off
tls_trust_file /etc/ssl/certs/ca-certificates.crt

# Set a default account
account default : 163

# 推荐用163。我两个都通过了。gmail需要打开邮箱修改安全应用方面的设置,163可以直接使用。

# 酌情修改上面的邮箱地址和密码就不用我多说了吧。

以上msmtprc设置是否有效,可以用echo "Subject:测试"|msmtp -d 123456@qq.com命令来测试。

写完这篇博文的时候发现阿里云可以申请解封25端口,不过需要人工审核,而且sendmail或postfix的折腾步骤比较繁琐,还需要开启sendmail或postfix后台服务,占用系统资源。有了以上的简单方法,我是不想再浪费那个时间了。

相关博文



发表评论

电子邮件地址不会被公开。