阿里云
发表主题 回复主题
  • 1209阅读
  • 0回复

使用 MSMTP 实现服务器兼容第三方 SMTP

级别: 论坛版主
发帖
9342
云币
14132
$iA`_H`W  
X>#!s Lt  
前言 5!PU+9Kh  
n2+eC9I  
=kspHP<k  
现在很多的服务提供商因为担心租户垃圾邮件滥发,默认都会把出入口的非加密 SMTP 端口也就是 25 给封了,这就导致了很多用户搭建好 Web 环境后使用 SendMail、EXIM4、Postfix 无法发送邮件,而搭建加密的 SSL 或者 TLS 方式又太复杂。 f&S,l3H<  
%HJ_0qg  
;ml;{<jI  
但是使用第三方 SMTP 服务,有需要额外设置或者安装插件扩展什么的,这里将介绍使用 MSMTP 实现在服务器使用第三方 SMTP 服务并完美兼容 SendMail 的规则。 "yI)F~A  
UUx0#D/U0C  
介绍  0FHX  
q lL6wzq,  
 @GYM4T  
MSMTP 是一个非常简单易用的 SMTP 客户端软件,基于GPL发布,支持TLS/SSL、DNS模式、IPv6、服务器端认证、多用户等特性,实现对 SendMail 的完整兼容。主要分两个包:MSMTP 和 MSMTP-MTA,前者实现了邮件转发代理,后者实现了对 SendMail 的完整兼容。 g=;c*{  
bYEq`kjzc  
wK[xLf  
针对 SMTP 呢,主要还是推荐使用像 阿里·邮件推送 这样的专业邮件推送服务,如果使用 Gmail、FoxMail、Aliyun Mail 这样的个人邮箱服务,如果发送邮件过多会被禁止发送邮件。 而 邮件推送 每日 200 封的发件额度基本上可以应对不小的服务场景了。 wL2d.$?TEg  
V$wf;v0d(  
要求 & 收获 J0}OmNTzD  
=J,aBp  
1e;^Mz B"  
需要使用到的产品:
  1. 任意(包括非阿里云)服务器/ECS/轻量应用服务器 (安装 CentOS 操作系统
  2. 阿里云·邮件推送
hIw<gb4J%  
通过本文你将讲学到:
  1. 开通设置 阿里云·邮件推送
  2. 使用 MSMTP 实现邮件转发代理
6M"]p  
ti'a^(  
开通邮件推送 C,w$)x5kls  
N"b>]Ab] ;  
E#_TX3B   
进入 邮件推送,点击 申请开通 并进行管理。 a`CsLBv&  
一、进入控制台,左侧列表中进入点击 发信域名 ,再点击 新建域名 ,设置你的发件域名,例如我的是:mail.mf8.biz ,那么效果就是 xxxx@mail.mf8.biz }0T1* .Cz  
!9i,V{$c`"  
J%3%l5 /  
二、点击 配置 将每一个配置添加到域名 DNS 中,返回后再点击 验证 =F ZvtcCa  
三,左侧列表中进入点击 发信地址,再点击 新建发信地址 , 账号 一栏推荐填写 noreply 提示不可回复,如果接受回复的话可以在 回信地址 中填写收件的邮箱 CCX\"-C  
然后 发件类型 填写 触发邮件, 触发类邮件指注册激活、密码找回等;批量邮件指营销推广、订阅期刊等。不同类型邮件的发送限制不同,请根据邮件类型选择。 Jjz:-Uqq2  
xv9Z~JwH  
DL2gui3  
ocy fU=}X  
四、在对应账号中点击 设置SMTP密码 "}|n;:r  
e.i5j^5u  
设置 MSMTP (?&X<=|"  
jGEUl=W  
LZyUlz  
安装 0vUX^<  
Fy<dk}@  
RHEL/CentOS: &@A(8(%  
}7vX4{Yn  
bxO8q57  
首先需要安装 EPEL,已经安装完成跳过即可: 'uBW1,  
Rw*l#cr=.  
  1. yum install epel-release
7[:9vY  
x+"~-KO8q$  
然后安装两个软件: ]E88zWDY`  
@Wy>4B^  
  1. yum install msmtp msmtp-mta ca-certificates
[a 5L WW  
6.2_UN^<  
Debian/Ubuntu /_?Ly$>'  
)`^t,x<S  
  1. apt install install msmtp msmtp-mta ca-certificates
A--Hg-N|  
3IZ^!J  
设置 ?I`']|I  
5Y"lr Y38  
*8fnxWR   
新建 /etc/msmtprc 文件,内容如下: #5N#^#r"  
93[c^sc9*a  
FlRbGg^  
  1. account default
  2. host smtpdm.aliyun.com
  3. port 465
  4. timeout 30
  5. auth login
  6. # 下面填写发件账户
  7. user no-reply@mails.mf8.biz
  8. # 账户密码
  9. password Passw0rd
  10. auto_from off
  11. # 下面填写发件账户
  12. from no-reply@mails.mf8.biz
  13. tls on
  14. tls_starttls off
  15. tls_certcheck off
  16. logfile /var/log/msmtp.log
W sQo+Ua  
b|wCR%  
这是阿里云邮件推送的设置模板,其他的邮件推送和设置请参考官方教程:http://msmtp.sourceforge.net/doc/msmtp.html 6YQ&+4   
GNqw]@'Yf  
权限 WL7R.!P  
%w,  
"ZNiTND  
由于这里文件储存了明文的密码所以要权限要设置的低! I7nt<l!  
*;(LKRV  
+L!-JrYHS4  
  1. chown www-data:www-data /etc/msmtprc
  2. chmod 0666 /etc/msmtprc
$[6:KV  
SY["dcx+  
这里的 www-data:wwww-data 要和 PHP 的用户组一致,如果是 www 就改成 www,apache 也是一样。 vL`wn=  
D!ToCVos  
测试 C+cSy'VIK!  
DHW;*A-  
!%_Z>a  
一、在终端中输入: uR|Jn)/m(  
Q_euNoA0  
mrX3/e  
  1. msmtp <你的邮箱>
!uii|"  
!1]72%k[  
Bl2y~fCA  
如果没有任何反应那么就 ok 了,如果有反馈就根据反馈信息对配置文件进行修改。 /-b)`%Q|Y  
#{1w#Iz;  
j~(rG^T  
二、通过探针或者 WordPress、Discuz 这样的程序的忘记密码进行测试是否可行即可! Pq>r|/~_  
完成后,所有依赖 SendMail 进行邮件发送的二进制软件这样的服务基本上都可以支持获得发件功能了~
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
验证问题: 阿里云官网域名是什么? 正确答案:www.aliyun.com
上一个 下一个