2009年09月27日

Google App Engine からメールを送る

appengine-jrubyを利用してのメールの送信は拍子抜けするくらい簡単だった。

GAEでWebアプリを動かすための設定に加えてメール用に追加が必要な宣言は require 'appengine-apis/mail' だけ。あとはメソッド一発で送信できてしまう。
AppEngine::Mail.send(
  'FROMアドレス文字列',
  'TOアドレスの文字列かTOアドレスの配列',
  'タイトル文字列',
  '本文文字列(HTMLメールの場合はnil)',
  {送信オプション}
)

appengine-apisのリファレンスによると送信オプションで使用できるのは下記の通り。

:atttachments
メッセージと共に送信する添付ファイル。{“ファイル名” => “データ”} というハッシュか、 [[“ファイル名”, “データ”], …]という配列の形式をとる。

:bcc
使用する場合は文字列か文字列の配列をセットする必要あり。

:cc
使用する場合は文字列か文字列の配列をセットする必要あり。

:html
HTMLメールを送る場合は、send の第4引数である本文文字列に nil を指定した上で、このパラメーターにHTMLメールのボディを記述する。

:reply_to
使用する場合は有効なメールアドレスをセットする必要あり。

本文など各所で変数が使用できる。試しに Sinatra用に下記のようなメソッドを書いてみた。UTF8Nで書いたのだけど、文字化けもせず普通に届いた。
get '/okuru' do
  tt = Time.now.to_s
  item = 'ゆうしゃの盾'
  AppEngine::Mail.send('fromのアドレス', 'toのアドレス', "AppEngineのメールだよ。送信日時は:#{tt}", "おめでとうございます。あなたには#{item}が当選しました。")
  'メールが送られました'
end


maru_tak at 22:56│Comments(0)TrackBack(0)

トラックバックURL

コメントする

名前
URL
 
  絵文字