在 WHM 上配置 SendGrid 电子邮件

SendGrid 是一项基于云的 SMTP 服务,使您无需管理邮件服务器即可实现邮件发送。

注意:端口25 默认关闭,在我们的虚拟机上无法连接(默认设置)。如果您想开启 25 端口,请购买 Mail Bridge 并进行配置,在Starlight™ Manager中完成。

要在 WHM 上配置Mailgun邮箱,请参考本指南

请按照以下步骤,在 WHM 端为您的域名配置SendGrid服务和邮件系统:

步骤 1:注册SendGrid:


填写所有联系信息后,点击“继续”。

步骤 2:您将被重定向到浏览器的新标签页以验证您的邮箱账户。复制发送到您邮箱的验证码,输入到“验证码”字段并点击“验证”:


步骤 3:输入发送到您手机的验证码,在“输入认证码”字段中填写并点击“验证”以验证您的手机号:


步骤 4:随后,您将获得恢复码,在丢失手机或无法访问验证设备时非常有用。请复制该代码并保存,然后点击“继续”。也可以选择将代码下载为文件:


步骤 5:在下一个页面填写您的联系信息,然后点击“下一步”:


步骤 6:在下一个页面,请打开您的 SendGrid 控制台:


步骤 7:进入后,前往“设置” >> “API 密钥”菜单,在此创建新的 API 密钥:


步骤 8:在打开的菜单中,输入API 密钥名称,将API 密钥权限设置为“完全访问”选项,并保存配置:


步骤 9:设置SendGrid 发件人身份验证。有两种方式:

方法一:单一发件人验证

单一发件人验证——这是一种快速验证方法,允许在使用 SendGrid 账户时添加授权收件人(单个或多个邮箱地址)。例如,如果您想通过 cPanel 服务器中添加的 john.doe@example.com 向 jane.doe@gmail.com 发送邮件,则需将 jane.doe@gmail.com 添加到 SendGrid 的单一发件人验证中。

注意:单一发件人验证仅推荐用于测试

注意:您只能从已验证的地址发送邮件,而不能从已认证域名的任意地址发送。

  • 要设置单一发件人验证,请在 SendGrid 控制台中进入“设置” >> “发件人身份验证”菜单 >> 点击“验证单一发件人”按钮:

  • 在下一个页面,填写联系信息创建发件人,然后点击“创建”以保存所有内容:

  • 之后,您将收到来自 SendGrid 的验证邮件。要确认添加邮箱地址,请在邮件中点击“验证单一发件人”按钮:

方法二:域名身份验证(推荐)

  • 点击“设置” >> 进入“发件人身份验证”菜单 >> 在“域名身份验证”区域下,点击“认证您的域名”:

  • 在下一个页面,通过回答第一步和第二步中的问题来认证您的域名,然后点击“下一步”:


    注意:在截图中,我们对第二个问题选择了“否”。不过,这个回答是可选的。

  • 之后,输入所需的域名,如有需要可设置其他选项,然后点击“下一步”:

  • 现在需要通过配置相应的 CNAME 和 TXT DNS 记录来验证域名。

    为域名创建 DNS 记录后,在第 2 步勾选“我已添加这些记录”框,并点击下方的“验证”:


注意:DNS 记录可能需要 24-48 小时才能生效。

步骤 10:下一步是配置 SMTP 设置,用于 WHM 端的邮箱账户。

操作方法:进入 WHM >> “服务配置” >> “Exim 配置管理器” >> 打开“高级编辑器”标签页。查找“Section: AUTH”,并在其中添加以下代码:

sendgrid_login:
driver = plaintext
public_name = LOGIN
client_send = : apikey : <API_KEY_VALUE>

请确保将<API_KEY_VALUE>替换为第 8 步生成的 API 密钥。

步骤 11:之后,查找“Section: POSTMAILCOUNT”,并在其中添加以下代码:

send_via_sendgrid:
driver = manualroute
domains = ! +local_domains
.ifdef SRSENABLED
# if outbound, and forwarding has been done, use an alternate transport
transport = ${if eq {$local_part@$domain} \
{$original_local_part@$original_domain} \
{sendgrid_smtp} {sendgrid_forwarded_smtp}}
.else
transport = sendgrid_smtp
.endif
route_list = "* smtp.sendgrid.net::587 byname"
host_find_failed = defer
no_more

步骤 12。查找“Section: TRANSPORTSTART”,再添加一段代码:

sendgrid_smtp:
driver = smtp
hosts = smtp.sendgrid.net
hosts_require_auth = smtp.sendgrid.net
hosts_require_tls = smtp.sendgrid.net

步骤 13:保存 SMTP 配置。

步骤 14:发送一封邮件以测试系统是否正常工作。邮件头中会包含“SendGrid”字样。

需要提供有效的电子邮箱