Customers Mail Cloud用のRubyライブラリで添付ファイルを送信する

Rubyでメール送信を行う際にはTMailやMail、ActionMailerを使うのが基本だと思いますが、環境によってはSMTPが使えない場合もあります。そうした時にはWeb API経由でのメール送信が便利です。

Customers Mail Cloudにはメール送信用のAPIが用意されていますが、手軽に使いやすくするライブラリを開発したので紹介します。今回は添付ファイルを送信する方法です。

customers_mail_cloud | RubyGems.org | コミュニティのGemホスティングサービス

インストール

インストールは gem コマンドで行います。

gem install customers_mail_cloud

使い方

まずライブラリをインポートします。

require('customers_mail_cloud')

次に初期化します。 Microsoft Azure で手軽にメール送信する - Customers Mail Cloud ブログ を参考にAPIユーザ、APIキーを作成してください。

client = CustomersMailCloud::Client.new(api_user, api_key)

Web APIのエンドポイントは契約ごとに異なります。それを指定します。

client.trial() # トライアルの場合
client.standard() # スタンダードの場合
client.pro(subdomain) # プロの場合。サブドメイン指定が必須です

後はメール送信に必要な宛先、送信元、件名、本文をそれぞれ指定します。

client.from = CustomersMailCloud::MailAddress.new('info@smtps.jp', 'Admin')
client.trial
client.to << CustomersMailCloud::MailAddress.new('test@smtps.jp', 'Tester')
client.subject = 'Mail subject'
client.text = 'Mail body'

添付ファイルを追加する

添付ファイルは attachments にファイルを追加します。ファイルのパスまたはファイルオブジェクトで指定します。

# ファイルのパスで指定する場合
client.attachments << "./Rakefile"
# Fileクラスで指定する場合
client.attachments << open("./test.rb")

後はメール送信用のメソッドであるsendを実行すればOKです。

begin
  json = client.send
  puts json
rescue => e
  puts e
}

コードについて

コードは goofmint/CustmersMailCloud-rb: Customers Mail CloudのRubyライブラリです で公開しています。不具合などがあれば、ご指摘ください。

まとめ

添付ファイルが使えるようになれば、システムと連携してクライアントへの一括送信などにも利用できるでしょう。大量メール送信を行う際にはぜひCustomers Mail Cloudとともに利用してください。