博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【云计算的1024种玩法】使用 MSMTP 实现底层环境的 阿里云·邮件推送服务 兼容...
阅读量:6826 次
发布时间:2019-06-26

本文共 1848 字,大约阅读时间需要 6 分钟。

前言

很多阿里云用户经常在开发者论坛反应服务器的 25 端口被封无法发件。但其实这是阿里云的一定保护措施,由于一些散播垃圾邮件的用户会通过 ECS、轻量 等服务搭建一个建议的 SMTP 服务器进行垃圾邮件滥发,这就可能导致很多邮件服务商会把阿里云的IP判断为垃圾邮件的IP源,就会导致下一个使用这个公网IP甚至是整个IP段都会收到波及。所以也不仅仅是阿里云,大多数的虚拟化服务器的提供商都会默认封禁 25 端口。

但是用户自己搭建基于 SSL、TLS 加密的 SMTP 服务器,技术难度太高。用第三方 SMTP 服务,又需要额外设置或者安装插件扩展什么的,这里将介绍使用 MSMTP 实现在服务器使用第三方 SMTP 服务并完美兼容 SendMail 的规则。

介绍

MSMTP 是一个非常简单易用的 SMTP 客户端软件,基于GPL发布,支持TLS/SSL、DNS模式、IPv6、服务器端认证、多用户等特性,实现对 SendMail 的完整兼容。主要分两个包:MSMTPMSMTP-MTA,前者实现了邮件转发代理,后者实现了对 SendMail 的完整兼容。

针对 SMTP 呢,主要还是推荐使用像 阿里云·邮件推送 这样的专业邮件推送服务,如果使用 Gmail、FoxMail、Aliyun Mail 这样的个人邮箱服务,如果发送邮件过多会被禁止发送邮件。 而 邮件推送 每日 200 封的发件额度基本上可以应对不小的服务场景了。

要求 & 收获

需要使用到的产品:

  1. 任意(包括非阿里云)服务器// (安装 CentOS 操作系统)

通过本文你将讲学到:

  1. 开通设置 阿里云·邮件推送
  2. 使用 MSMTP 实现邮件转发代理

开通邮件推送

进入 ,点击 申请开通 并进行管理。

一、进入控制台,左侧列表中进入点击 发信域名 ,再点击 新建域名 ,设置你的发件域名,例如我的是:mail.mf8.biz ,那么效果就是 xxxx@mail.mf8.biz

image

二、点击 配置 将每一个配置添加到域名 DNS 中,返回后再点击 验证

三,左侧列表中进入点击 发信地址,再点击 新建发信地址账号 一栏推荐填写 noreply 提示不可回复,如果接受回复的话可以在 回信地址 中填写收件的邮箱

然后 发件类型 填写 触发邮件, 触发类邮件指注册激活、密码找回等;批量邮件指营销推广、订阅期刊等。不同类型邮件的发送限制不同,请根据邮件类型选择。

image

四、在对应账号中点击 设置SMTP密码

设置 MSMTP

安装

RHEL/CentOS:

首先需要安装 EPEL,已经安装完成跳过即可:

yum install epel-release

然后安装两个软件:

yum install msmtp msmtp-mta ca-certificates

Debian/Ubuntu

apt install msmtp msmtp-mta ca-certificates

设置

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

account defaulthost smtpdm.aliyun.comport 465timeout 30auth login # 下面填写发件账户user no-reply@mails.mf8.biz# 账户密码password Passw0rdauto_from off# 下面填写发件账户from no-reply@mails.mf8.biztls ontls_starttls offtls_certcheck offlogfile /var/log/msmtp.log

这是阿里云邮件推送的设置模板,其他的邮件推送和设置请参考官方教程:

权限

由于这里文件储存了明文的密码所以要权限要设置的低!

chown www-data:www-data /etc/msmtprcchmod 0666 /etc/msmtprc

这里的 www-data:wwww-data 要和 PHP 的用户组一致,如果是 www 就改成 wwwapache 也是一样。

测试

一、在终端中输入:

msmtp 
<你的邮箱>

如果没有任何反应那么就 ok 了,如果有反馈就根据反馈信息对配置文件进行修改。

二、通过探针或者 WordPress、Discuz 这样的程序的忘记密码进行测试是否可行即可!

完成后,所有依赖 SendMail 进行邮件发送的二进制软件这样的服务基本上都可以支持获得发件功能了~

转载地址:http://jzfkl.baihongyu.com/

你可能感兴趣的文章
SCCM Deploy Microsoft Teams
查看>>
领域模型设计的见解
查看>>
linux命令:pwd
查看>>
linux用户权限相关内容查看
查看>>
孤陋寡闻之不用电池的阵列卡
查看>>
linux虚拟化之openvz
查看>>
Java那些坑(1):Java7的substring
查看>>
我的友情链接
查看>>
千里传字 随时随地签批
查看>>
计算子网ip
查看>>
linux 的date命令及系统时间设置
查看>>
Spark键值对RDD的转化操作
查看>>
linux中断驱动程序
查看>>
LINUX 第二天
查看>>
用c语言模拟用户登录,并且只能登录三次
查看>>
strncat 和strstr函数的实现
查看>>
Exchange 2010为新用户邮箱自动发送欢迎邮件
查看>>
亚马逊最新财报盈利下滑,我们仍然看好
查看>>
python入门学习常见错误 python基础
查看>>
SpringMVC的工作原理
查看>>