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

对于在自己的网站上需要邮件发送服务的用户来说,发送邮件一般有三种方式:自建邮件服务器、邮件提供商的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服务商的选择

1.阿里云的邮件推送,每天有200封免费的额度。
2.SendGrid、SendinBlue等等都有免费发信额度。
3.Microsoft365或其他服务平台提供的SMTP服务。
4.个人邮箱的SMTP服务。

在使用上建议优先使用TLS加密或STARTTLS加密,不建议选择未加密的25端口进行发送邮件服务,因为未加密可能会存在泄露,而且大部分VPS或云服务商都已经默认封锁25端口的策略。

3、msmtp安装

##CentOS
yum -y install epel-release
yum -y install msmtp

##Debian/Ubuntu/Deepin

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.com
#host后为SMTP服务器地址
port 465
#端口TLS加密的一般为465,根据实际情况而定,不建议使用未加密的25端口,大部分服务商都会屏蔽25端口
auth plain
user xxx@xxx.com
from xxx@xxx.com
password 密码
account default : aliyun

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

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

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

5、可能会遇到的问题

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

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

结束 

网络信息,由52VPS整理收集,如若转载,请注明出处:https://www.52vps.com/1189.html

(0)
上一篇 2022-04-19 08:35
下一篇 2022-05-08 14:39

相关推荐