目次

RubyでSMTP over SSLメールを送る

インターネットメールへの送信を、Rubyスクリプトを使ってメール送信するようにしたので備忘録を残す。

Ruby関連のインストール

Ruby本体のインストール

$ sudo apt install ruby

Ruby用mailライブラリーのインストール

$ sudo gem install mail

SSLメール送信するスクリプト

私の通信環境はY!mobile。そのメール設定でRubyスクリプトのファイル mail_send.rb を作成。(参考.1記事を参考)

mail_send.rb
#! /usr/bin/ruby
# coding: utf-8
 
require 'mail'
 
if ARGV.size != 3
    puts "usage : \n "
    puts "     $ "+  __FILE__ + "  hogeto@exmaple.com  'test mail'  '<text file>'  "
    puts " \n\n "
    exit
end
 
options = { :address              => "ymobilesmtp.mail.yahoo.ne.jp",
            :port                 => 465,
            :user_name            => '<アカウント>@yahoo.ne.jp',
            :password             => '<アカウントパスワード>',
            :authentication       => 'plain',
            :ssl => true,
              }
 
Mail.defaults do
  delivery_method :smtp, options
end
mail = Mail.new do
  from     '<アカウント>@yahoo.ne.jp'
  to       ARGV.shift
  subject  ARGV.shift
  body     File.read(ARGV.shift)
end
 
mail.deliver!

実行できるように権限を設定

$ sudo chmod +x mail_send.rb

試しに送信してみる

メール本文の適当なテキストファイル「body.txt」を作成しておき、下記コマンドを実行してメール送信する。

$ ./mail_send.rb hogeto@sample.co.jp 'test mail' body.txt

無事に届けばOK。

関連記事

【Ubuntu】RubyでSMTP over SSLメールを送る

参考