3

如何配置应用程序以接收到达服务器的电子邮件。

我有一个 Rails 应用程序,它很容易将电子邮件发送到我分配的电子邮件 ID,但我不知道在我的控制器中写什么来从解析 api 获取电子邮件对象(页眉、页脚、正文等)。

我是 Rails 新手,所以我希望创建一个基本主题,让有经验的人聚集并回复,以使 sendgrid api 变得越来越有用......

4

1 回答 1

2

我将假设您已经配置了 MX 记录,并且您已经在 SendGrid 后端设置了解析设置。从代码的角度来看,这就是它的样子:

1. 添加一条路线到您的config/routes.rb

您需要定义一个接受消息的路由。

# /inbound
match '/inbound' => 'messages#inbound', :via => :post 

2. 配置您的方法以返回 200 响应码

在我的示例中,这是文件将是app/controllers/messages_controller.rb. 我要做的就是记录参数,但你应该用你自己的逻辑替换那个位。重要的是我正在返回一个200响应代码。

class MessagesController < ApplicationController
  def inbound
    puts "*"
    puts params
    puts "*"

    render :json => { "message" => "OK" }, :status => 200
  end
end

上述代码的结果将按照这些行将一些内容记录到您的 Rails 服务器输出中:

**************************************************
{
        "headers" => "Received: by 127.0.0.1 with SMTP ..."
    "attachments" => "0",
           "dkim" => "{@sendgrid.com : pass}",
        "subject" => "Hello world",
             "to" => "foo@snailgrid.com",
           "html" => "<div>... </div>",
           "from" => "Swift <swift@sendgrid.com>",
           "text" => "Some text body",
       "envelope" => "{\"to\":[\"foo@snailgrid.com\"],\"from\":\"mike.swift@sendgrid.com\"}",
            "SPF" => "pass",
     "controller" => "messages",
         "action" => "inbound"
}
**************************************************
于 2012-08-29T18:14:05.320 回答