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

From: Masaya TARUI <tarui@...>
Date: 2013-11-19 11:45:00 UTC
List: ruby-list #49698
クオートについては、まずは、例えば、
i=1
p i
p "i"
p "#{i}"

を実行してみて違いを考えてみてください。
最後の物はRubyで特徴的な書き方で式展開といいます。
慣れると大変便利です。

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

こちらの方は上手く説明できる自信がないので申し訳ないのですが、
bodyに対して body = "header " + body というような事を何回も実行してる
状態になってまして、
i = 1
p i
i = i+1
p i
i = i+1
p i
を実行したら、 1,2,3と表示されるのと同じで
最初 body = "本文"なのがeachのループにつれて
body = "header header header 本文"
みたいになってます。
なので、ヘッダーをつける段階からbodyと違う変数名を使わないといけません。
mailbody <<EOT
ほげほげ

#{body}
<<EOT
としてやれば、bodyの中身は変わらずに次も正しくbodyを参照出来る事になります。


2013年11月19日 17:55 Taiki Kimura <taikimura8182@gmail.com>:
>> 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ヒアドキュメントがセットされたりするのは、
> 私の書き方に問題があるからなのですよねぇ。。。



-- 
樽家昌也(Masaya TARUI)
No Tool,No Life.

In This Thread