使用msmtp配合SMTP为Linux服务器搭建邮件发送服务

admin3年前主机评测77

对于网站有邮件发送服务有需求的用户来说,发送邮件一般有三种方式:自建邮件服务器、使用邮件提供服务商API方式和SMTP方式。自建邮件服务器需要占用比较多的内存且需要额外进行比较多的设置,不适合少量邮件的用户使用;API方式一般适合从程序开发开始就在程序中写好,一般小用户都使用开源程序;SMTP比较灵活可以使用邮件服务商或者个人邮箱的SMTP服务,对于每天发送量不多使用SMTP相对来说也比较方便。大部分程序如Wordpress、Discuz X等常见的程序一般后台都有SMTP的设置,设置好之后就可以通过SMTP发送邮件,但对于没有SMTP相关设置的程序来说就无法正常发出邮件,今天我们主要就针对这种情况下使用msmtp调用SMTP服务器发送邮件。

1、msmtp简介

msmtp是一款专门负责邮件发送的SMTP客户端软件,支持TLS/SSL/STARTTLS、多种认证方式、多用户等。类似的程序其实很多如古老的mailx、s-nail、ssmtp等,msmtp比较活跃比较好用一些。

2、SMTP服务商的选择

首推:阿里云的邮件推送,每天有200封免费的额度。
其次:SendGrid、SendinBlue等等都有免费发信额度。
再其次:Microsoft365或其他服务平台提供的SMTP服务。
最后:个人邮箱的SMTP服务。

在使用上建议使用TLS加密或STARTTLS加密,不建议使用未加密的25端口进行发送邮件,首先未加密可能会存在泄露其次很多VPS或云服务商都已经采取了默认封锁25端口的设置。

3、msmtp安装


CentOS/RHEL/Fedora/Alma/RockyDebian/Ubuntu/Deepin
yum -y install epel-release
yum -y install msmtp
apt-get install -y msmtp

4、msmtp配置

配置文件位置:/etc/msmtprc  该文件不一定自动创建,下面以SSL/TLS加密为例:

defaults
tls on
#如果不是SSL/TLS加密方式改成off
tls_starttls off
#如果是STARTTLS加密改成on
tls_certcheck off
logfile /var/log/msmtp.log
account aliyun
#account后面为自定义的名字,随便都可以,只要与最后面的account default:后面的一样就可以
host smtpdm.aliyun
#host后为SMTP服务器地址
port 465
#端口TLS加密的一般为465,根据实际情况而定,不建议使用未加密的25端口,很多服务商会屏蔽该端口
auth plain
user xxx@vpser.net
from xxx@vpser.net
password 密码
account default : aliyun

上面 xxx@vpser.net 为用户名一般为邮箱地址,密码一般为邮箱的登录密码,QQ、Gmail等一些SMTP为单独的授权码或密码之类的。

保存完配置文件就可以进行测试,看一下邮件能否正常发送。

执行:



echo "来自msmtp发出的测试邮件" | msmtp 自己的邮箱

邮箱地址用于测试看是否能正常收到邮件。

5、PHP邮件发送配置

以LNMP为例,php配置文件位置:/usr/local/php/etc/php.ini 编辑该文件,查找 sendmail_path
更改为:sendmail_path = /usr/bin/msmtp -t
如果前面有 ; 将该分号去掉,保存。
重启php-fpm或Apache生效。
PHP上的测试就简单多了,可以直接在LNMP的p.php 探针页最下面"邮件发送检测"选项下面填写邮箱即可。

6、可能会遇到的问题


6.1、Ubuntu/Debian下可能会无法记录日志,解决方法:



apt install -y apparmor-utils
aa-disable /etc/apparmor.d/usr.bin.msmtp

6.2、如在安装使用过程中有问题可以在本文下方或者论坛留言。

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

阿里云独享虚拟主机、轻量应用服务器和云服务器ECS配置选择(新手教程)

阿里云服务器用户常用的三种机型:独享虚拟主机、轻量应用服务器和云服务器ECS,独享虚拟主机最为简单,但相对来说它的限制也很多,如果只是建站的话,可以选择这款。轻量应用服务器支持一站式的域名、网站、安全...

「域名到期了怎么办?延期方法汇总!」

摘要:在互联网时代域名作为网站的标识符对于网站的运营具有至关重要的作用。但域名一旦到期会对网站的正常运营带来很大的影响。本文旨在分享域名到期后的延期方法介绍主流的延期流程并提供一些实用的建议。一、续费...

个人服务器(个人服务器搭建)

随着互联网的发展,越来越多的人开始关注个人服务器,并尝试搭建自己的服务器。个人服务器是指一台自己拥有的、可以在家中或者办公室等地方放置的服务器。相比于云服务,个人服务器更加灵活、安全和可控。首先,个人...

幻梦云互联:年终大促销,香港免备案CDN 49元/年,国内CDN价格3元起,免备案虚拟主机10元/年

幻梦云互联怎么样?幻梦云互联,企业级云服务器提供商,专注为个人站长,中小型企业用户提供海外云服务器、虚拟主机、免备案CDN及挂机宝产品!本次幻梦云年终大促销,香港免备案CDN49元/年,国内CDN价格...

php错误处理

PHP错误处理PHP是一种非常流行的服务器端编程语言。当我们使用PHP编写网站时我们需要许多错误处理机制来保证我们的网站能够正常运行并且不会产生任何问题。PHP的错误处理机制非常强大它可以很容易地帮助...

中山云服务器_中山云主机/免备案vps主机租用

中山云服务器(中山云主机)真正的云计算架构云服务器,配备纯SSD架构打造的高性能存储,旨在为中山企业和个人用户提供优质、高效、弹性伸缩的云计算服务。阿里云服务器采用由数据切片技术构建的三层存储功能,切...