我想允许用户通过他们的电子邮件地址发送我的rails应用中生成的电子邮件。
我知道我可以使用我的服务器sendmail,并将发件人地址设置为他们的电子邮件地址,但电子邮件很可能被标记为垃圾邮件。
有更好的方法吗?我可以使用sendgrid或Amazon SES还是让用户输入自己的SMTP详细信息。
非常感谢任何建议或最佳做法。
答案 0 :(得分:5)
亚马逊SES对于此用例是不可能的:在作为特定电子邮件地址发送之前,它们需要授权程序。
即使您提示他们提供SMTP服务器详细信息,也会将巨大的红色标记引发给任何有能力的用户。大多数SMTP服务器都已正确配置为在SMTP事务期间要求身份验证,或者需要最近的POP3或IMAP连接,这意味着收集用户凭据。您是否想要让您的用户使用他们的电子邮件密码信任您?
总的来说,这实际上是一个非常糟糕的主意,特别是考虑到电子邮件作者证明技术,如SPF / Sender ID。通过非授权服务器以这种方式发送的邮件越来越可能被(正确地)标记为垃圾邮件。
您的用例是否允许邮件为“来自”您的应用程序,但是有“回复”用户?
答案 1 :(得分:5)
我相信SendGrid支持自定义发件人地址。 Heroku将它们作为附加组件提供,并宣传“完全控制来自:地址”。在add-ons page
上答案 2 :(得分:5)
面对SPF,这将失败。 SPF本质上是一种域称“来自此域的电子邮件只会从这些服务器发送”的方式,因此如果您发送来自用户的电子邮件,来自您服务器的域名,任何进行SPF检查的人都可能将您的邮件标记为垃圾邮件。
基本上:如果邮件不是来自发件人,请不要使用From
标题,而是使用Sender
标题。