[#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:49665] Re: net/smtp sslでのwhileループメール送信

From: Jun'ya Shimoda <junshimo2@...>
Date: 2013-11-12 11:44:35 UTC
List: ruby-list #49665
(2013/11/12 19:56), Taiki Kimura wrote:
> ・msgというメソッドをsmtp.send_messagからメールの本文として呼び出す?
> ・to_listのヒアドキュメントから宛先アドレスを1行ずつ読み込んで
smtp.send_messagにセットする?
> という処理を行う必要があるということですよね?

表現としては合ってます。


> で、その場合、smtp.send_messagの後に、
> ただ単に「msg」とメソッド名を書いてもメール本文にはならず、
msg(from, to)とすれば本文が返ります。

> また、tsmtp.send_messagの後にto_list.linesと指定するのも絶対に違うと思うのですが、
to_list.linesで各行を一行ずつ取り出すループになってます。

> 違うと予想はついても、そこから具体的なコードをイメージするような知識と経験がまだないので、
> 厚かましいようで大変恐縮なのですが、この点についても何かしらヒントを貰えると大変助かります。。。
答えよりヒントの方がいいんでしょうけど
なかなか難しいです・・・

> ----------------------------------------------
> smtp = Net::SMTP.new(HOST, PORT)
> smtp.enable_ssl
>   smtp.start(HELO, ACCESS_KEY, SECRET_KEY, :plain) {|smtp|
>     smtp.send_message mailbody, from, to_addr
> }
> ----------------------------------------------
ここの部分に間違いがなければ(インデントが間違ってます)
以下のようになるはずです。

----------------------------------------------
# smtp初期化
smtp = Net::SMTP.new(HOST, PORT)
smtp.enable_ssl

# to_listの各行を処理
to_list.lines do |to|
  # 送信処理
  smtp.start(HELO, ACCESS_KEY, SECRET_KEY, :plain) {|smtp|
    smtp.send_message msg(from, to), from, to
  }
end
----------------------------------------------
これで動くはずですが
msg(from, to)
でどう呼んで、何を返しているか理解できたら
send_messageでfromとtoを2回ずつ書くのは冗長なので
msgを改造するなどの対策をした方がいいです。


-- 

#!/usr/bin/env ruby

begin
            Name:     下田 純也 (Jun'ya Shimoda)
 A   A      e-mail:   junshimo2@gmail.com
(o'.'o) _/  Twitter:  http://twitter.com/JironBach/
(> ~ <)/    Facebook: http://www.facebook.com/junya.shimoda
            Github:   https://github.com/JironBach
rescue
  CrowdWorks: https://crowdworks.jp/public/employees/57377
ensure
  Blog: http://d.hatena.ne.jp/JironBach/
end

In This Thread