Sendgrid 解析 webhook - 电子邮件转发

heg*_*gez 12 php email sendgrid

我有一个带有 SendGrid 集成的 PHP Web 应用程序,用于传入(解析 webhook)和传出邮件(mail()带有邮件代理系统配置的PHP )。目前,我们的传入邮件系统由一个端点组成,它将所有联系电子邮件保存到我们的数据库中。我们还希望有一些直接的电子邮件转发映射到其他邮件提供商(如 ceo@mysite.com => my.address@example.com)。

据我所知,在 SendGrid 端没有电子邮件路由或使用 SMTP 协议转发它们,只有简单的 API 调用连接到我们的端点。创建指向我们 IP 地址的 MX 记录不是一种选择,因为我们不想向公众透露我们服务器的原始 IP 地址(DDoS 风险)。

我应该只编写代码来获取电子邮件的内容并mail()转发吗?一些数据会丢失,但在大多数情况下它应该可以工作。或者有没有办法连接 Gmail Business 帐户之类的东西来侦听这些特定地址的邮件?

小智 -1

对此没有直接的解决方法。

  1. 使用 SendGrid Parse Webhook 接收传入电子邮件。
  2. 将联系电子邮件存储到您的数据库(正如您所做的那样)
  3. 在您的应用程序中编写自定义转发逻辑。当电子邮件到达时,如果它与转发规则之一匹配(ceo@mysite.com 到 my.address@example.com),请使用 PHP mail() 函数或 SMTP 库将电子邮件转发到您所需的地址(例如,xyz) @example.com)

请注意,在此过程中可能不会保留某些信息,例如原始发件人的 IP 地址。还可以使用 HTTPS 对应用程序和 SendGrid 的 API 之间的通信进行加密,以保护敏感数据。

  1. 您必须在 Gmail 中为特定地址(如 ceo@mysite.com.com)设置转发规则,才能将电子邮件转发到 xyz@example.com。这只能在 Gmail Business 设置中实现。

注意 此转发由 Gmail 管理,而不是在您的 PHP 应用程序中管理。如果您愿意为此目的使用 Gmail,那么这是一个选项。

  1. 为了避免显示您服务器的原始 IP 地址,您可以使用 Cloudflare 或类似的 CDN/WAF 等服务。这些服务充当您的服务器和公众之间的代理,掩盖您服务器的真实 IP 地址。

请记住根据您的特定应用程序和威胁模型实施额外的安全措施。