• {{ item.name }}
  • Home
  • Linux
  • Programming
    • Python
  • Life
  • Other
  • Tools
  • 投资者该如何参与优秀的区块链项目- NuLink社区圆桌会议
  • 什么是NuLink?- 项目中文社区与项目研究组成员 Rookie 对话实录
  • NuLink 融资 400 万美元用于开发隐私保护技术
  • NuLink的零知识证明介绍(1)
  • 用bitwarden_rs搭建属于自己的密码管理器
  • 修复 CentOS vps 网卡失效
  • 记录用mac给Nexus6P刷Android10的错误
  • Centos 6.8启用 TCP BBR拥塞控制算法
  • Nginx 启用HTTP2功能
  • Mac 安装adb工具
  • WordPress 默认编辑器代码按钮

CentOS 中用postfix 发邮件

  • iansiu
  • 2016-03-31
  • 0

postfix或是sendmail在我看来都是超复杂的,现在还是完全不懂,一看到那么大一堆配置文件就直接先晕了,所以,之前我都是用mailx在利用外部smtp服务器发邮件,不用自己搭建服务器。

最近发现用mailx发邮件时灵时不灵的,所以找了种方法,利用postfix发smtp外部邮件。。

参考:http://www.jslink.org/linux/centos-postfix-mailx-qq-smtp-sendmail.html

首先申请一个腾讯企业邮箱,免费的,个人QQ邮箱也行,事实上QQ邮箱真的比其他邮箱好用(除了Gmail)

一、卸载sendmail

service sendmail stop
yum remove sendmail

安装依赖

yum install -y mailx cyrus-sasl-plain

二、配置账号信息

创建密码配置文件

echo "[smtp.exmail.qq.com]:587 [email protected]:password" > /etc/postfix/sasl_passwd

smtp.exmail.qq.com是发件服务器

587 是发信加密端口,还有个465端口,但是我用465怎么都不成功。

[email protected] 是账号

password是密码

密码是明文存储的,通过postmap创建hash加密文件sasl_passwd.db

最后测试没问题就可以删除sasl_passwd

postmap hash:/etc/postfix/sasl_passwd

三、创建ca证书,配置main.cf

进入certs目录,创建证书

cd /etc/ssl/certs/

make
make server.pem

创建完成后会生成server.pem

移动到/etc/postfix/目录

mv server.pem /etc/postfix/

重要:配置 generic 替换系统发信人,不然当你以root用户执行mailx的时候,发信人将是[email protected]

这当然是不可能被腾讯允许的,会报错误(mail from address must be same as authorization user) 如下:

需要在/etc/postfix/generic下添加账号映射,其他的服务器账号同理都要添加上。

echo '[email protected]  [email protected]' >>/etc/postfix/generic

并生成generic.db文件

postmap /etc/postfix/generic

然后配置main.cf,备份原文件,然后清空main.cf,替换如下:

mydomain = example.com
myorigin = $mydomain
myhostname = $mydomain
mydestination = $mydomain
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
relayhost = [smtp.exmail.qq.com]:587
smtp_use_tls = yes
smtp_tls_CAfile = /etc/postfix/server.pem
smtp_generic_maps = hash:/etc/postfix/generic
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

四、先再开一个终端,实时查看maillog发送日志

tail -f /var/log/maillog

最后重启postfix,发送测试邮件

service postfix restart

测试一下

echo 'This is a test mail' | mail -r "[email protected]example.com (iansiu)" -s 'about php-fpm service' [email protected]

成功了

/etc/postfix/sasl_passwd

可以删除掉了

© 2023 laowang's blog
Theme by Wing