3

サーバーに送信される電子メールを受信するようにアプリケーションを構成するにはどうすればよいですか。

割り当てたとおりにメールをメールIDに簡単に送信するRailsアプリケーションがありますが、解析APIからメールオブジェクト(ヘッダー、フッター、本文など)を取得するためにコントローラーに何を書き込むべきかわかりません。

私はレールに慣れていないので、経験豊富な人々が集まって返信し、sendgridapiをより有益なものにするための基本的なトピックを作成したいと思います...

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 に答える