为 Sendmail 和 SendGrid 配置服务器端电子邮件传递服务
使用以下步骤配置服务器,以便通过 Sendmail 使用 IBM Cloud® 电子邮件发送服务。
此示例是 CentOS 6.5 和 Ubuntu 14 的裸机安装。
预配置
您需要安装以下软件包,Sendmail 才能正常使用 SendGrid 作为智能主机。
RHEL 和 CentOS
对于 RHEL 和 CentOS, 运行以下命令:
yum install cyrus-sasl-plain sendmail sendmail-cf
Ubuntu 和 Debian
对于Ubuntu和Debian,运行以下命令:
apt-get install libsasl2-modules sendmail sendmail-cf heirloom-mailx
配置 SendGrid
-
将 SendGrid 用户名和密码添加到文件 /etc/mail/access:
AuthInfo:smtp.sendgrid.net "U:YOUR_SENDGRID_USER" "P:YOUR_SENDGRID_PASSWORD" "M:PLAIN"
-
运行以下命令生成 /etc/mail/access.db 数据库映射:
makemap hash /etc/mail/access.db < /etc/mail/access
-
编辑 /etc/mail/sendmail.mc 文件以使用 SendGrid 作为智能主机。
在 RHEL 和 CentOS 中配置 sendmail.mc
-
找到并打开 sendmail.mc 文件。
-
注释掉下面一行。
dnl define('SMART_HOST', 'smtp.your.provider')dnl
-
添加具有以下代码的新行。
define('SMART_HOST', 'smtp.sendgrid.net')dnl
FEATURE('access_db')dnl
define('RELAY_MAILER_ARGS', 'TCP $h 587')dnl
define('ESMTP_MAILER_ARGS', 'TCP $h 587')dnl
在 Ubuntu 和 Debian 中配置 sendmail.mc
-
找到并打开 sendmail.mc 文件。
-
在文件末尾,在读取 "MAILER_DEFINITIONS" 的行前插入以下代码
define('SMART_HOST', 'smtp.sendgrid.net')dnl
FEATURE('access_db')dnl
define('RELAY_MAILER_ARGS', 'TCP $h 587')dnl
define('ESMTP_MAILER_ARGS', 'TCP $h 587')dnl
重新生成 sendmail.cf
sendmail.mc文件是一组宏,可扩展到真正的(更复杂的)sendmail.cf配置文件。 要使Sendmail可以访问您的更改,请使用m4命令重新生成sendmail.cf。
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
重新启动 Sendmail
使用以下命令重新启动Sendmail:
service sendmail restart
使用命令行邮件工具测试更改
使用以下命令测试更改:
echo "Sendgrid and Sendmail" | mail -s "mail subject here" you@yourdomain.com