[#49655] 東京Ruby忘年会2013のお誘い — TAKAHASHI Kazunari <takahashi@1syo.net>
いっしょうと申します
1 message
2013/11/02
[#49657] Rubyリファレンス chm版リミックス更新(2013年11月版) — Dice <tetradice@...>
こんにちは。Diceです。
1 message
2013/11/04
[#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
たるいといいます。
[#49689] Re: net/smtp sslでのwhileループメール送信
— Taiki Kimura <taikimura8182@...>
2013/11/19
下田さん たるいさん
[#49690] Re: net/smtp sslでのwhileループメール送信
— Masaya TARUI <tarui@...>
2013/11/19
メソッドの最初でbodyを更新してしまってるのが問題ですね。この更新した時のtoの値で確定してしまってます。
[#49691] Re: net/smtp sslでのwhileループメール送信
— Taiki Kimura <taikimura8182@...>
2013/11/19
たるいさん
[#49692] Re: net/smtp sslでのwhileループメール送信
— Masaya TARUI <tarui@...>
2013/11/19
たるいです。
[#49670] Re: net/smtp sslでのwhileループメール送信
— "-E:), niku" <niku@...>
2013/11/14
にくです
[#49680] apacheでruby 2.0を使う — 夏目祐樹 <em.s.00001@...>
初めまして、夏目祐樹といいます。
6 messages
2013/11/18
[#49705] sprintfフォーマットについて — Hikaru Seki <seki.p.hikaru@...>
23 messages
2013/11/30
[#49709] Re: sprintfフォーマットについて
— dezawa <dezawa@...>
2013/12/01
出沢です
[#49706] Re: sprintfフォーマットについて
— Masaya TARUI <tarui@...>
2013/11/30
たるいといいます。
[#49707] Re: sprintfフォーマットについて
— OZAWA Sakuro <sakuro@2238club.org>
2013/11/30
バイナリ値を扱うなら sprintf よりは pack&unpack の出番かもしれません。
[ruby-list:49700] Re: net/smtp sslでのwhileループメール送信
From:
Taiki Kimura <taikimura8182@...>
Date:
2013-11-20 04:00:40 UTC
List:
ruby-list #49700
> 最初 body = "本文"なのがeachのループにつれてbody = "header header header 本文"なので、
>ヘッダーをつける段階からbodyと違う変数名を使わないといけません。
この事象はご教示いただいたように対処したところ解消しました。
(何がだめだったのかご教示いただいた事例を熟読したところ何となく理解できました)
が、メール自体は複数届いてしまう事象が残りました。
で、それは恐らく、sendmailメソッド内とsendmailを呼び出した時とに2回ほど、
input = open("data.txt")
input.lines do |to|
to = to.chomp
これを実行しているからなのでは??とあたりをつけ、
sendmailメソッド内の方で上記部分を削除したところメールが複数届く事象も解消しました。
これでやりたいことが、ほぼできるようになったのですが欲がでたため、
sendmailメソッドを呼び出す際のメール本文をヒアドキュメントではなくてファイルにしてみました。
//sendmailメソッド内のmailbodyというヒアドキュメントを、
//メソッドの外に出すことも挑戦してみたいと思っています。
で、そのメール本文となるファイルを敢えてWindowsのテキストエディタ(template.txt)で作成し、
それをメール下部のようなコードで読み込ませたところ、
こちらも文字化けせず期待通りのメールが送信できるようになりました。
ここで1つ新たな疑問がでてきました。
当方のやりたいことは、
AWSのSESサービスを使って年末年始の挨拶メールを
取引先に数百通ほど自動で一斉送信する、というものです。
この場合の挨拶メール本文は、
社内の事務方社員がWindows端末のテキストエディタで作成するため、
上述のtemplate.txtを読み込むテストまで行ったのでした。
で、Rubyスクリプトが扱うファイルの文字コードが、
上述のようにShift_JIS (CR)固定であり、これ以外の文字コードのファイルを扱わない場合、
現時点でできあがったスクリプトを使用することで問題はないと思っています。
が、もしも、Rubyスクリプトが扱うファイルの文字コードが固定でない場合、
ファイルを読み込む前に、一度、文字コードを判定する?みたいな処理を入れ、
その結果に応じて、都度UTF-8に変換する、といったようなことをするのが一般的なのでしょうか?
個人的には、Rubyスクリプトが読み込むファイルの頻度がそれほど多くない場合、
読み込むファイルの文字コードを、$nkf --guess hoge.txtなどで事前に確認し、
その結果にあわせて、スクリプトの当該箇所を随時変更する、でもよいのかなーと思ったりしています。
------------------------------------------------------
# coding:utf-8
def sendmail(from, to, subject, body)
smtp = Net::SMTP.new(HOST, PORT)
smtp.enable_ssl
mailbody = <<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
mbody = NKF.nkf("-Wj", mailbody).force_encoding("ASCII-8BIT")
smtp.start(HELO, ACCESS_KEY, SECRET_KEY, :plain) {|s| s.send_message
mbody, from, to}
end
tolist = open("data.txt")
tolist.lines do |toaddr|
toaddr = toaddr.chomp
ftext = open("template.txt", "r:cp932:UTF-8")
mtext = ftext.read
sendmail("hoge@aaa.net" ,toaddr, "Mailてすと" ,mtext)
end
------------------------------------------------------