Symfoware

Symfowareについての考察blog

Ruby outlook.com経由でメールを送信する

地味に苦労したのでメモ。


mail



メール送信は、前にもやったことがあります。
Ruby + gem mailでメール送信時、「post_connection_check」「Non US-ASCII detected 」

今回も、メールの送信にはmailライブラリを使用することにしました。
ライブラリのインストールは以下のコマンドで行います。


$ sudo gem install mail





接続情報



必要な情報は以下の通り。

STMPサーバー:smtp-mail.outlook.com
ポート:587
ドメイン:outlook.com
ユーザー名:xxxx@outlook.com(登録しているメールアドレス)
パスワード:outlookにログインするときのパワスワード



サンプル



サンプルは以下のようになりました。

tsl:trueを指定してもよいですし、
enable_starttls_auto: trueでもOKです。


  1. # -*- coding : utf-8 -*-
  2. require "mail"
  3. # 送信するメールの設定
  4. mail = Mail.new
  5. mail.from    = "test@outlook.com"
  6. mail.to     = "test@gmail.com"
  7. mail.subject = "メールタイトル"
  8. mail.body    = "メール本文"
  9. mail.charset = 'utf-8'
  10. # 送信に使用するメールサーバーの指定
  11. mail.delivery_method(:smtp,
  12. address:        "smtp-mail.outlook.com",
  13. port:         587,
  14. domain:'outlook.com',
  15. user_name: 'test@outlook.com',
  16. password: 'P@ssw0rd',
  17. authentication: :login,
  18. tsl: true
  19. )
  20. # 送信実行
  21. mail.deliver






注意点



tslを間違えてsslとすると、こんなエラーになります。
どっち指定しても一緒だろと思っていたのではまりました。


/usr/lib/ruby/1.9.1/net/smtp.rb:583:
in `connect': SSL_connect returned=1 errno=0 state=unknown state: unknown protocol (OpenSSL::SSL::SSLError)

from /usr/lib/ruby/1.9.1/net/smtp.rb:583:in `tlsconnect'
from /usr/lib/ruby/1.9.1/net/smtp.rb:551:in `do_start'
from /usr/lib/ruby/1.9.1/net/smtp.rb:519:in `start'
from /var/lib/gems/1.9.1/gems/mail-2.6.3/lib/mail/network/delivery_methods/smtp.rb:112:in `deliver!'
from /var/lib/gems/1.9.1/gems/mail-2.6.3/lib/mail/message.rb:2141:in `do_delivery'
from /var/lib/gems/1.9.1/gems/mail-2.6.3/lib/mail/message.rb:238:in `deliver'



関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2014/11/23(日) 15:54:40|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<Ruby + mail 独自のメールヘッダーを付与する | ホーム | Puma + Redmineをサブディレクトリで複数稼働させる>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1554-2d8342ef
この記事にトラックバックする(FC2ブログユーザー)