LoginSignup
8
10

More than 5 years have passed since last update.

Rubyのaws-sdk(v2)を用いたSESの使い方

Last updated at Posted at 2015-08-30

Qiitaやネット上のblogなどに出てくる記事が総じてv1で、そのまま書いただけではまったく動かなくて、少し詰まった。
ので数か月後の自分の為にメモ

Ruby 2.2.2
aws-sdk 2.1.15
での記事です。

ドキュメントを見る

公式のAWS SDK for Rubyを参照すると
まずクライアントの設定は以下の通り

Client
ses = Aws::SES::Client.new(
  region: region_name,
  credentials: credentials,
  # ...
)

次にメール本体の設定については

send_email

resp = client.send_email({
  source: "Address", # required
  destination: { # required
    to_addresses: ["Address"],
    cc_addresses: ["Address"],
    bcc_addresses: ["Address"],
  },
  message: { # required
    subject: { # required
      data: "MessageData", # required
      charset: "Charset",
    },
    body: { # required
      text: {
        data: "MessageData", # required
        charset: "Charset",
      },
      html: {
        data: "MessageData", # required
        charset: "Charset",
      },
    },
  },
  reply_to_addresses: ["Address"],
  return_path: "Address",
  source_arn: "AmazonResourceName",
  return_path_arn: "AmazonResourceName",
})

という形になっている

実際に書いてみる

test_mail.rb
ses = Aws::SES::Client.new(
  region: #SESを設定したRegion,
  access_key_id: YOUR_ACCESS_KEY,
  secret_access_key: YOUR_SECRET_KEY,
)

body_text = "メールやで"

subject = 'サブジェクトやで'

from_email = YOUR_ADDR
to_email = YOUR_ADDR

ses.send_email({
  source: from_email,
  destination: {
    to_addresses: [to_email],
  },
  message: {
    subject: {
      data: subject,
      charset: 'ISO-2022-JP',
    },
    body: {
      text: {
        data: body_text,
        charset: 'ISO-2022-JP',
      },
    },
  },
})

で何も詰まることなく届いた。

結論

大体の事はドキュメントを読むと数秒で終わるのでドキュメント読むのがいい

8
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
10