SendGrid 是一项基于云的 SMTP 服务,使您无需管理邮件服务器即可实现邮件发送。
注意: 25 端口默认关闭,在我们的虚拟机上无法连接 默认情况下。如果您想开启 25 端口,请购买 Mail Bridge 并进行配置于Starlight™ Manager中。
要在 WHM 上配置 SendGrid 邮箱,请参考本指南。
请按照以下步骤,在 CyberPanel 端为您的域名配置 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 记录后,在第二步勾选“我已添加这些记录”框,并点击下方的“验证”:

注意:DNS 记录可能需要 24-48 小时才能生效。
10. 下一步是为 CyberPanel 服务器配置 SMTP 设置。
很遗憾,CyberPanel 目前尚未为用户提供专门的 SMTP 配置界面。SendGrid 必须通过 SSH 终端进行配置。
首先,以 root 身份登录您的服务器:
ssh root@SERVER_IP_ADDRESS -p PORT
其中 SERVER_IP_ADDRESS 是您的服务器 IP 地址,PORT 是 SSH 连接端口(默认是22022)
用文本编辑器打开/etc/postfix/main.cf文件:
nano /etc/postfix/main.cf
或vi /etc/postfix/main.cf
将以下内容添加到文件末尾:
smtp_sasl_auth_enable = yessmtp_sasl_password_maps = hash:/etc/postfix/sasl_passwdsmtp_sasl_security_options = noanonymoussmtp_sasl_tls_security_options = noanonymoussmtp_tls_security_level = encryptheader_size_limit = 4096000relayhost = [smtp.sendgrid.net]:587
现在您需要在单独的文件中指定您的凭据(用户名使用apikey,密码为 API 密钥),(您可能需要新建该文件):/etc/postfix/sasl_passwd
echo “[smtp.sendgrid.net]:587 apikey:YOUR_SENDGRID_API_KEY” > /etc/postfix/sasl_passwd
其中 YOUR_SENDGRID_API_KEY 是您在第 8 步创建的密钥。
接下来,请确保该文件仅 root 用户有读取和写入权限,并使用 postmap 命令更新 Postfix 的哈希表以使用此新文件:
sudo chmod 600 /etc/postfix/sasl_passwdsudo postmap /etc/postfix/sasl_passwd
最后,重启 Postfix:
systemctl restart postfix
在您的服务器上安装 SASL 插件:
apt-get install libsasl2-modules # 适用于 Ubuntudnf install cyrus-sasl-plain # 适用于 Almalinux/CloudLinuxyum install cyrus-sasl-plain # 适用于 CentOS
此外,某些实例可能需要为 Dovecot 安装 MySQL 驱动程序,以配置 MySQL 后端进行身份验证:apt install dovecot-sqlite dovecot-mysql # 适用于 Ubuntudnf install dovecot-mysql # 适用于 Almalinux/CloudLinuxyum install dovecot-mysql # 适用于 CentOS
之后,重启 Dovecot:
systemctl restart dovecot
现在,您可以测试邮件是否通过 SendGrid 转发:
sendmail -f YOUR_LOCAL_EMAIL -v DESTINATION_EMAIL
其中 YOUR_LOCAL_EMAIL 是您在 CyberPanel 账户中创建的邮箱账户,DESTINATION_EMAIL 是测试邮件的收件人邮箱。
然后输入您的邮件正文并按Ctrl+D发送。
或者,您也可以在 CyberPanel 账户中使用 Webmail 发送测试邮件。