如何配置应用程序以接收到达服务器的电子邮件。
我有一个 Rails 应用程序,它很容易将电子邮件发送到我分配的电子邮件 ID,但我不知道在我的控制器中写什么来从解析 api 获取电子邮件对象(页眉、页脚、正文等)。
我是 Rails 新手,所以我希望创建一个基本主题,让有经验的人聚集并回复,以使 sendgrid api 变得越来越有用......
如何配置应用程序以接收到达服务器的电子邮件。
我有一个 Rails 应用程序,它很容易将电子邮件发送到我分配的电子邮件 ID,但我不知道在我的控制器中写什么来从解析 api 获取电子邮件对象(页眉、页脚、正文等)。
我是 Rails 新手,所以我希望创建一个基本主题,让有经验的人聚集并回复,以使 sendgrid api 变得越来越有用......
我将假设您已经配置了 MX 记录,并且您已经在 SendGrid 后端设置了解析设置。从代码的角度来看,这就是它的样子:
config/routes.rb
您需要定义一个接受消息的路由。
# /inbound
match '/inbound' => 'messages#inbound', :via => :post
在我的示例中,这是文件将是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"
}
**************************************************