CentOS 7中 邮件服务Postfix 通过Gmail转发

我们在服务器中,经常需要使用到发送邮件服务。但是如果使用自己的主机来发送邮件的话,

经常会被邮箱系统给屏蔽,因为你的是自己的域名。使用Gmail的就不会。这里是使用Gmail做说明,

其他的邮件系统也类似

  1. 安装必要的组件
yum install postfix mailx cyrus-sasl-plain cyrus-sasl-md5

2. 配置用户密码

echo "smtp.gmail.com    smtp_user:smtp_passwd" > /etc/postfix/sasl_passwd

3. 对用户密码进行加密

postmap hash:/etc/postfix/sasl_passwd

备注:如果提示说缺少什么libmysqlclient.so之类的,你需要做

a. 安装对应的lib (yum provides ‘*/libmysqlclient.so.18’ 查询哪些组建提供该依赖)

b. 增加对应的lib到 /etc/ld.so.conf.d/local.conf目录中,然后执行ldconfig

#vim /etc/ld.so.conf.d/local.conf
/usr/local/lib
/usr/lib64
/usr/lib
/usr/lib64/mysql/

 

4. 修改配置文件:/etc/postfix/main.cf,直接在文件末尾增加如下:

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
# Secure channel TLS with exact nexthop name match.
smtp_tls_security_level = secure
smtp_tls_mandatory_protocols = TLSv1
smtp_tls_mandatory_ciphers = high
smtp_tls_secure_cert_match = nexthop
smtp_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt
#smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
relayhost = [smtp.gmail.com]:587

注意:CAfile 是用来验证与Gmail建立连接时加密用的,可以选择本机上的根证书,通常是上述路径

5. 开启服务,发送邮件厕所

systemctl enable postfix
systemctl reload postfix
systemctl restart postfix
echo "This is a test." | mail -s "test message" user@example.net

6.  删除密码文件,安全起见这个已经不需要了

rm /etc/postfix/sasl/passwd

 

7. 问题与日志

如果有问题可以检查日志文件:

tail -f /var/log/maillog

配置 Exim4 使用 Gmail 的 SMTP 服务器(防止邮件被拦截)

记录一下如何使用 Exim4 使用 Gmail 的 SMTP 服务器来发邮件

安装 Exim4

sudo apt-get install exim4

设置 Exim4

sudo dpkg-reconfigure exim4-config

使用以下的设置

General type of mail configuration: mail sent by smarthost; no local mail 
System mail name: (default)
IP-addresses to listen on for incoming SMTP connections: 127.0.0.1
Other destinations for which mail is accepted:  (default)
Visible domain name for local users: yourdomain.com
IP address or host name of the outgoing smarthost: smtp.gmail.com::587
Keep number of DNS-queries minimal (Dial-on-Demand)? No
Split configuration into small files? No

添加用户

用 VIM 打开

vi /etc/exim4/passwd.client

添加用户

# password file used when the local exim is authenticating to a remote
# host as a client.
#
# see exim4_passwd_client(5) for more documentation
#
# Example:
### target.mail.server.example:login:password

gmail-smtp.l.google.com:you@gmail.com:password
*.google.com:you@gmail.com:password
smtp.gmail.com:you@gmail.com:password

重载 Exim4

# update-exim4.conf
# invoke-rc.d exim4 restart
# exim4 -qff

这3个步骤更新、重新加载exim4的配置,并强制发送尝试的所有信息,包括冻结的。

测试是否成功

echo 'ok' | mail -s 'Gmail SMTP Relay Test' someone@example.com

注:

如果需要用PHP进行发送邮件的话,需要添加如下配置

vim php.ini
找到sendmail_path = ,改为sendmail_path = /usr/sbin/sendmail -t -i
如果没有就直接添加,如果已经是了就没有必要修改了