接收和处理电子邮件:Heroku、Sendgrid,可能还有 Mailman

2024-03-04

我的应用程序为每个用户创建一个唯一的电子邮件,用户将电子邮件发送到该地址进行处理。使用 Sendgrid,我已将传入电子邮件通过管道传输到我的域(托管在 Heroku 上)的地址:

site.com/receive_email

我使用“收件人”字段来确定用户,因为电子邮件地址是随机生成的。

我尝试过使用外部脚本,例如Mailman https://github.com/titanous/mailman,但由于我托管在 Heroku 上,我需要有一个全职运行的工作人员来保持此过程继续进行。目前并没有真正为这个测试应用程序寻找这一点。

这就需要将其作为 POST 请求来处理。我可以在 receive_emails 上访问 POST 哈希(params["subject"] 等)。

这就是我陷入困境的地方

您是否建议处理来自 POST 参数的原始数据,或者我可以使用 Mailman 或 ActionMailer 之类的东西来为我处理电子邮件吗?


我还没有使用 Sendgrid 将电子邮件转换为帖子请求,但它与 cloudmailin(一个 Heroku 插件)配合得很好。这是一个例子,有人向你的应用程序发送一封电子邮件,它被 cloudmailin/sendgrid 处理并变成一个帖子,然后将其发送到你的控制器,然后控制器查看消息参数,从电子邮件中找到发件人地址,如果发件人尚不存在,则为她创建一个帐户:

class CreateUserFromIncomingEmailController < ApplicationController

  require 'mail'

  skip_before_filter :verify_authenticity_token

  parse_message(params[:message])

  def create
    User.find_or_create_by_email(@sender)
  end

private

  def parse_message(message_params)
    @message    = Mail.new(message_params)
    @recipients = @message.to
    @sender     = @message.from.first
  end

end

祝你好运。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

接收和处理电子邮件:Heroku、Sendgrid,可能还有 Mailman 的相关文章

随机推荐