[#49662] net/smtp sslでのwhileループメール送信 — Taiki Kimura <taikimura8182@...>

はじめまして 木村といいます。

32 messages 2013/11/12
[#49663] Re: net/smtp sslでのwhileループメール送信 — Jun'ya Shimoda <junshimo2@...> 2013/11/12

下田と申します。

[#49664] Re: net/smtp sslでのwhileループメール送信 — Taiki Kimura <taikimura8182@...> 2013/11/12

下田さん

[#49665] Re: net/smtp sslでのwhileループメール送信 — Jun'ya Shimoda <junshimo2@...> 2013/11/12

(2013/11/12 19:56), Taiki Kimura wrote:

[#49666] Re: net/smtp sslでのwhileループメール送信 — Taiki Kimura <taikimura8182@...> 2013/11/12

下田さん

[#49668] Re: net/smtp sslでのwhileループメール送信 — Jun'ya Shimoda <junshimo2@...> 2013/11/12

> なるほど。

[#49669] Re: net/smtp sslでのwhileループメール送信 — Taiki Kimura <taikimura8182@...> 2013/11/13

下田さん

[#49671] Re: net/smtp sslでのwhileループメール送信 — Taiki Kimura <taikimura8182@...> 2013/11/14

お世話になっております。

[#49674] Re: net/smtp sslでのwhileループメール送信 — SATOH Fumiyasu <fumiyas@...> 2013/11/14

さとうふみやす @ OSSTech です。

[#49676] Re: net/smtp sslでのwhileループメール送信 — SATOH Fumiyasu <fumiyas@...> 2013/11/14

さとうふみやす @ OSSTech です。

[#49678] Re: net/smtp sslでのwhileループメール送信 — Taiki Kimura <taikimura8182@...> 2013/11/14

さとうさん

[#49679] Re: net/smtp sslでのwhileループメール送信 — Taiki Kimura <taikimura8182@...> 2013/11/18

お世話になっています。

[#49681] Re: net/smtp sslでのwhileループメール送信 — Jun'ya Shimoda <junshimo2@...> 2013/11/18

下田です。

[#49688] Re: net/smtp sslでのwhileループメール送信 — Masaya TARUI <tarui@...> 2013/11/19

たるいといいます。

[#49705] sprintfフォーマットについて — Hikaru Seki <seki.p.hikaru@...>

23 messages 2013/11/30

[ruby-list:49694] Re: net/smtp sslでのwhileループメール送信

From: Taiki Kimura <taikimura8182@...>
Date: 2013-11-19 08:55:06 UTC
List: ruby-list #49694
> sendmail("kimura@katamari.co.jp" ,to, "めーるて", <<EOF)
> の間違えですね。

これは、変数をメソッドの実引数に指定する場合クォートしない、という理解をしてもよいのでしょうか。

で、とりあえずのテストとして、body=の部分とbodyのヒアドキュメントの位置は変更せず、
たるいさんから教えていただいたように、
sendmailの実引数のtoを「クォート無し」にして試したら期待通りの動作になりました。

>bodyのヒアドキュメントとbody = NKF.nkf("-Wj", body).force_encoding("ASCII-8BIT")
>を、to=to.chompの後ろに移動した上で、

次に、こちらのアドバイスをもとに次のように書き換えたところ、

---------------------------------------------------
def sendmail(from, to, subject, body)

smtp = Net::SMTP.new(HOST, PORT)
smtp.enable_ssl

   input = open("data.txt")
   input.lines do |to|
   to = to.chomp

body = <<EOF
From: #{from}
To: #{to}
Subject: #{NKF.nkf("-WMm0j", subject)}
Date: #{Time.now.rfc2822}
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit

#{body}
EOF
      mailbody = NKF.nkf("-Wj", body).force_encoding("ASCII-8BIT")
      smtp.start(HELO, ACCESS_KEY, SECRET_KEY, :plain)  do |s|
      s.send_message mailbody, from, to
      end
   end
end

tolist = open("data.txt")
tolist.lines do |toaddr|
toaddr = toaddr.chomp
sendmail("hoge@aaa.net ,toaddr, "めーるて", <<EOF)

日本語メールテスト

EOF
end
---------------------------------------------------

いま、data.txtに宛先メールアドレスを4つ書いているのですが、
このスクリプトを実行するとアドレスあたり4通のメールが届きます。

また、届いたメールの本文にはそれぞれ次のような感じで、
sendmailメソッドの実引数になっているヒアドキュメントと
bodyヒアドキュメントがセットされたメールが届いてしまっております。。。

---------------------------------------------------
From: hoge@aaa.net
To: aaaaa@iiiiiii.co.jp
Subject: めーるて
Date: Tue, 19 Nov 2013 17:38:36 +0900
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit

From: hoge@aaa.net
To:bbbbb@iiiiiii.co.jp
Subject: めーるて
Date: Tue, 19 Nov 2013 17:38:33 +0900
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit


日本語メールテスト
---------------------------------------------------

1通あたり複数のメールが届いてしまったり、
本文にbodyヒアドキュメントがセットされたりするのは、
私の書き方に問題があるからなのですよねぇ。。。

In This Thread