Ruby on rails 如何让Sendgrid入站解析Webhook在rails应用程序中工作?

Ruby on rails 如何让Sendgrid入站解析Webhook在rails应用程序中工作?,ruby-on-rails,email,sendgrid,Ruby On Rails,Email,Sendgrid,我正在尝试构建一个rails应用程序来处理入站邮件。我使用Rails导体和action邮箱让应用程序在本地主机上运行。当发送电子邮件时,我能够保存电子邮件的内容。但我很难让它在生产环境中工作……我不知道如何配置我的域和设置使其工作 我一直按照这里的说明进行操作: 及 我在rails凭据中包含了以下内容: 行动(邮筒): 入口密码:mypassword 我在谷歌域名上建立了MX记录: parse.[mydomain].com  我指向一个主机名和URL https://actionmailbo

我正在尝试构建一个rails应用程序来处理入站邮件。我使用Rails导体和action邮箱让应用程序在本地主机上运行。当发送电子邮件时,我能够保存电子邮件的内容。但我很难让它在生产环境中工作……我不知道如何配置我的域和设置使其工作

我一直按照这里的说明进行操作: 及

我在rails凭据中包含了以下内容:

行动(邮筒): 入口密码:mypassword

我在谷歌域名上建立了MX记录:

parse.[mydomain].com

我指向一个主机名和URL

https://actionmailbox:mypassword@parse.[mydomain].com/rails/action_mailbox/sendgrid/inbound_emails
我将电子邮件从我的电子邮件帐户发送到

parse@parse.[mydomain].com
但我无法测试或跟踪这封电子邮件发生了什么。我没有收到回复邮件的错误消息,所以我认为这是一个好迹象,但我不确定是否正在处理或如何排除故障。我甚至在我的replets_mailbox.rb文件中放了一个puts“test”,但当我跟踪生产日志时,在控制台中看不到任何东西


关于下一步可以采取什么措施,有什么建议吗?

在处理集成测试时,按照电子邮件路径的顺序将问题分为几个小问题是很有用的

  • 检查mx dns记录是否已传播,通常是在您编辑区域时-在区域TTL通过(通常设置为几个小时)之前,其他dns服务器可能仍会使用旧记录进行响应,请使用一些远程dns检查器
  • 检查sendgrid设置(包括actionmailbox预期的“发布原始完整MIME消息”,以便sendgrid发布“电子邮件”字段)
  • 检查sengrid中的垃圾邮件过滤器是否正在删除电子邮件
  • 检查请求是否存在于web服务器/反向代理日志中(如使用nginx)
  • 尝试模仿sendgrid的请求,检查您的应用程序是否接受它(如果它在日志中),rails只读取
    params[:email]
    ,其他字段不需要:
    curl-X POST”https://actionmailbox:mypassword@解析[mydomain].com/rails/action\u mailbox/sendgrid/inbound\u emails”\
    -F email=“From:foo\nTo:bar\n对象:测试\n时间版本:1.0\n\n测试!”
    
  • 我会从#5开始,确保你的应用程序正确接收电子邮件并有日志,然后再继续


    PS.
    put
    可能不会出现在生产日志中(或者不会出现在您期望的位置),具体取决于您的日志记录设置。更好的方法是使用
    Rails.logger.info

    当我尝试运行curl的第一行时,我得到一个错误,错误是:curl:(6)无法解析主机:parse.mydomain.com。但我确实在谷歌域名中加入了MX记录(上图)。但是我还遗漏了什么吗?@sharataka你还需要一个指向你的应用程序的A记录,以便http工作(mx用于邮件),或者将
    parse.mydomain
    更改为你的主域名:give;类型:CNAME。这是我的网站所在的主要领域。当我尝试为MX将parse.mydomain更改为give.mydomain时,我得到一个错误,即名称冲突。您需要MX(用于邮件)和A(用于http),后者可能位于主域上。将MX留在parse.yourdomain,但使用
    http://actionmailbox:yourpassword@yourmaindomain/rails/…
    用于webhook(从使用curl测试开始)谢谢!这里是在黑暗中拍摄的,但是在我解决这个问题时,你愿意和我一起缩放/skyping吗?