Skip to content

安装postfix服务yum install postfix
必要的配置,example.com 换成自己的域名,39.108.91.25 换成自己的客户端ip

bash
vi /etc/postfix/main.cf:
    myhostname = example.com
    mydomain = example.com
    myorigin = $mydomain
    inet_interfaces = all
    inet_protocols = all
    mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
    mynetworks = 127.0.0.0/8 39.108.91.25

要配置用户验证,使用cyrus-sasl,不配置用户也可以使用postfix服务,这样任何人(在ip白名单中)都可以无认证进行邮件发送,不安全,推荐加上用户验证

bash
# 安装 cyrus-sasl
yum install cyrus-sasl*
# 可以添加两种验证方式 saslauthd 或者 sasldb

# saslauthd:
# 修改配置
vi /etc/sasl2/smtpd.conf:
    pwcheck_method: saslauthd
    mech_list: PLAIN LOGIN
# 添加用户
useradd test
passwd test # 回车输入两次密码
# 配置用户
saslauthd -a shadow
# 测试用户
testsaslauthd -u username -p password
# 启动服务
service saslauthd start

# sasldb
vi /etc/sasl2/smtpd.conf:
    pwcheck_method: auxprop
    auxprop_plugin: sasldb
    mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM
# 添加用户 mydomain 使用postfix的mydomain配置 test为用户
saslpasswd2 -c -u `postconf -h mydomain` test
# 查看用户
sasldblistusers2 # 将会输出 username1@example.com: userPassword

# 然后后配置 postfix 进行stmp验证
vi /etc/postfix/main.cf:
# 指定 sasl 名称
smtpd_sasl_path = smtpd
    # 指定postfix兼容MUA使用不规则的smtp协议--主要针对老版本的outlook 此项对于本次配置无意义
    broken_sasl_auth_clients = yes
    # 指定可以向 postfix 发起 SMTP 连接的客户端的主机名或ip地址
    smtpd_client_restrictions = permit_sasl_authenticated
    # 此处 permit_sasl_authenticated 意思是允许通过sasl认证(也就是smtp链接时通过了账号、密码效验的用户)的所有用户 reject_unauth_destination 发件人在执行RCPT TO命令时提供的地址进行限制规则
    smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
    # 指定 postfix 使用 sasl 验证 通俗的将就是启用 smtp 并要求进行账号、密码效验
    smtpd_sasl_auth_enable = yes
    # 指定 SMTP 认证的本地域名 本次配置可以使用 smtpd_sasl_local_domain = '' 或干脆注释掉 默认为空
    smtpd_sasl_local_domain = $mydomain
    # 取消 smtp 的匿名登录 此项默认值为 noanonymous smtp 若能匿名登录危害非常大 此项请务必指定为 noanonymous
    smtpd_sasl_security_options = noanonymous
    #指定通过postfix发送邮件的体积大小 此处表示5M
    message_size_limit = 5242880

# 最后启动或重启 postfix 服务
service postfix start # 启动 或
service postfix restart # 重启

使用telnet连接邮件服务

bash
yum install telnet
# example.com postfix 服务域名 25 postfix 默认端口号,记得在服务器的安全策略中开启此端口
telnet example.com 25

阿里云会封禁往25端口发送的请求
postfix 服务器2.10.1坑好多,用不了465端口,使用3.0及以上版本可以配置使用465端口

Centos6.4下配置邮件服务器postfix3.0.1(一)
【postfix系列之一】编译安装Postfix邮件服务器

如果以上都不好使,可以使用阿里云提供的邮件推送SMTP服务,每个用户每天有200个免费额度。
申请开通后,设置发信域名然后 设置发信地址最后设置smtp密码并在应用中配置smtp,然后就可以愉快地发送邮件了😎