首页 > 解决方案 > Symfony 邮件程序 - sendgrid ip 池

问题描述

我目前正在使用 symfony mailer + sendgrid 来发送邮件。配置相当标准(如此处所述:https ://symfony.com/doc/current/mailer.html )。

我现在正在尝试集成 sendgrid ip 池(这样我们就可以为不同类型的邮件或客户使用不同的专用 ip,让他们更好地标记重要邮件,让我们有更好的报告)。这些池通常在此处进行描述:https ://sendgrid.com/blog/ip-pools-all-you-need-to-know/ 。

问题是 sendgrid 网桥似乎不支持此功能(或者我可能错过了它?)。此外,似乎(不确定)sendgrid 实现使用的是 sendgrid smtp api,而不是 sendgrid webapi,而且我没有选择添加任何类型的新/自定义标头来指定池。

那么如何在 symfony 中使用 sendgrid ip 池呢?有什么我可以在邮件程序中使用的选项来做到这一点,还是我需要定制一些东西(我对此没有问题,但我有点喜欢 symfony 邮件程序的抽象化并且会喜欢保留它)?

标签: phpsymfonysendgridmailer

解决方案


DSN 方案可以@sendgrid+api使用 SendgridApiTransport,它将对/v3/mail/send端点进行 POST。

ip_pool_name与发布的其余 JSON 有效负载以及其余数据(例如“personalizations.to.email”和“姓名”、“发件人”、“主题”等)一起设置 -包括主要内容。

但是,SendgridApiTransport没有出现(根据我对代码的阅读),似乎支持/v3/mail/sendAPI 有效负载中的所有其他潜在项目。

可以创建自己的传输,在现有传输的基础上将额外字段添加到有效负载中,并将其替换为 framework.mailer.transports 配置。

在主要的symfony/symfony 问题跟踪器中将其作为一般 Mailer 问题提出,这对更广泛的社区也非常有价值。

https://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/index.html#-Request-Body-Parameters


推荐阅读