刚刚切换到SendGrid,我对用于发送电子邮件的各种方法和库感到非常惊讶(并且非常困惑)。
SendGrid的官方ruby客户端构建了一个电子邮件和请求,然后constructs a POST request将该数据发送到他们的smtp端点。
然而,Rails使用ActionMailer
,还有其他宝石,如sendgrid-actionmailer和sendgrid-rails,可以将功能扩展到Rails。
ActionMailer
实际上做了什么?我知道您可以配置smpt_options
,然后在邮件中调用mail(..)
来发送电子邮件。这只是构建一个类似的POST请求并发送它吗?如果是这样,它是否保证与官方ruby客户端构建的相同(即,是否有标准?)
答案 0 :(得分:1)
ActionMailer只是基本的Rails电子邮件发送框架。开箱即用,它能够进行SMTP电子邮件调用,而像SendGrid这样的服务是一个简单的解决方案。
它也可以配置为使用像JSON API这样的交付方法,这是一种流行的替代方案,或者更奇特的方式,比如将其转储到作业队列中。
要使用的库取决于您要使用的功能。如果您只需要一个快速的即发即弃系统,SMTP默认方法可能适合您。如果您需要具有更多控制权的内容,基于API的内容可能会更好。