我的应用程序为每个用户创建一个唯一的电子邮件,用户将电子邮件发送到该地址进行处理。使用 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(使用前将#替换为@)