参考文档:
- [文档1]https://blog.youkuaiyun.com/ithomer/article/details/83744621 另外这篇文档实践讲解也很详细
- [文档2]https://blog.youkuaiyun.com/yongren_z/article/details/85119088
- [文档3]http://devgou.com/article/Linux-Email/#%E6%94%B6%E5%8F%91%E9%82%AE%E4%BB%B6%E6%B5%8B%E8%AF%95
这篇文档对基础知识讲解的很详细,建议大略看一下
目标:
从我的ecs发邮件出去。
目标明确了,那么我就没必要在自己机器上搭建smtp服务了(倒腾了不少时间),直接使用三方厂商的smtp服务做路由转发就行。
下面说下实践:
step1.根据[文档1]对/etc/postfix/main.cf进行配置(Postfix的主配置文件)(怀疑这步可能不需要,不过我之前摸索的时候配置了,读者可以尝试直接进行step2)
step2.根据[文档2]对/etc/mail.rc进行配置,这里注意,要修改的是/etc/mail.rc,我的配置:
set smtp="smtps://smtp.126.com:465" # 这里选择要代发邮件的服务,本机会请求此机器让帮转发邮件
# 认证方式
set smtp-auth=login
set smtp-auth-user=".." # 上面我填写的是126邮箱,所以这里是我126的账号
set smtp-auth-password=".." # 上面我填写的是126邮箱,所以这里是我126的密码,这里尽量使用代理邮件服务器生成的授权码、比如126或者qq给生成的授权码、不要填密码,不安全-,=
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb
# 设置发信人邮箱和昵称
set from="" # 和smtp-auth-user保持一致
# STARTTLS时使用
#set smtp-use-starttls=yes
step3. mail -v -s "subject_title" ${接收者的邮箱} < content
SUCC
备注:不用修改ecs的端口配置
202008更新:
126的邮箱没绑定手机号,126给我干掉了,证书也不让我配置;
改用qq了:
> 改动:
- 邮件设置->账户->POP3/SMTP服务,这里开启服务,并拿到授权码,填入/etc/mail.rc的set smtp-auth-password
- /etc/mail.rc的set smtp改为qq的:smtps://smtp.qq.com:46
其它:
- inet_interfaces:Postfix仅侦听来自本地主机的传入电子邮件。若要重新配置postfix以接收从远程主机发送的本地邮件,必须在/etc/postfix/main.cf中设置inet_interfaces = all
- 对电子邮件进行故障排除时,将在/var/log/maillog中保留所有与邮件相关的操作日志,其中包括关于被事件和成功事件的信息。
- /etc/postfix/main.cf:Postfix的主配置文件
- mailq命令(或postqueue -p)显示已排队的所有传出邮件的列表。若要尝试再次立即发送所有已排队的邮件,可以运行postfix flush命令(或postqueue -f);否则,postfix将大约每小时尝试重新发送一次,直至邮件被接受或过期。