2011-03-11 86 views
7

我希望允许用户发送电子邮件,这些电子邮件是我的Rails应用程序从电子邮件地址生成的。在rails中从用户电子邮件地址发送电子邮件的最可靠方法?

我知道我可以只使用我的服务器sendmail和从地址到他们的电子邮件地址设置,但有一个高的机会的电子邮件将被标记为垃圾邮件。

有没有更好的方法来做到这一点?我可以使用sendgridAmazon SES或让用户输入他们自己的SMTP详细信息。

任何建议或最佳做法将不胜感激。

回答

5

亚马逊SES是出于对这种使用情况的问题:他们发送一个特定的电子邮件地址之前需要授权程序。

即使您提示他们输入SMTP服务器的详细信息,也会给任何有能力的用户设置巨大的红色标记。大多数SMTP服务器已正确配置为要求在SMTP事务期间进行身份验证,或需要最近的POP3或IMAP连接,这意味着要收集用户凭据。您是否想要让您的用户使用他们的电子邮件密码信任您?

总的来说,这实际上是一个非常糟糕的主意,特别是考虑电子邮件作者身份验证技术,如SPF/Sender ID。通过非授权服务器以这种方式发送的邮件越来越可能(正确地)标记为垃圾邮件。

请问您的使用情况允许的邮件是“从”你的应用程序,但有一个“回复”的用户?

+0

嗯,总是有“发件人”标题,但一些邮件客户端显示为“代表发件人发件人”。 – Charles 2011-03-11 02:02:07

+0

'发件人'标题选项可能是一种很好的方法,gmail就是这么做的,关于gmail的主题,如果通过一个人的SMTP发送这样的'非常糟糕的想法',为什么gmail会给你选项通过外部SMTP网关发送电子邮件,在其中存储密码和凭证? – 2011-03-11 03:43:51

+0

仅仅因为这是一个非常糟糕的主意并不意味着这不是其他人做的事情! – Charles 2011-03-11 04:01:35

5

这将在SPF面对失败。 SPF是本质上的域名,说:“电子邮件声称来自域名将只能从这些服务器来发送”的方式,因此,如果您从一个用户在该域从您的服务器发送电子邮件,谁做的SPF检查很可能会将您的邮件标记为垃圾邮件。

本质:不要使用From头如果邮件从发件人的不是,用Sender头而不是。

+0

这是一个很好的答案,不知道为什么它没有更多的选票。我发现你可以使用'Sender'头和'From'头;似乎工作很好。 – 2012-05-14 14:13:03

相关问题