diff options
author | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-06-08 06:14:59 +0000 |
---|---|---|
committer | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-06-08 06:14:59 +0000 |
commit | 0b1e93285ec4dafefb8277425e1ff58e5247715c (patch) | |
tree | 237c7f24c6d6dcb1182841947ea9961a6af75764 | |
parent | 35bb464b6b698c7ad18f7abbd2d65fbce9f03371 (diff) |
merge revision(s) 27374,27512:
* lib/net/smtp.rb (Net::SMTP#rcptto_list): continue when at least
one RCPT is accepted. based on a patch from Kero van Gelder at
[ruby-core:26190].
* lib/net/smtp.rb (Net::SMTP#rcptto_list): fixed typo.
[ruby-core:29809]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@28208 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | lib/net/smtp.rb | 22 | ||||
-rw-r--r-- | version.h | 2 |
3 files changed, 29 insertions, 6 deletions
@@ -1,3 +1,14 @@ +Tue Jun 8 15:15:18 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * lib/net/smtp.rb (Net::SMTP#rcptto_list): fixed typo. + [ruby-core:29809] + +Tue Jun 8 15:15:18 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * lib/net/smtp.rb (Net::SMTP#rcptto_list): continue when at least + one RCPT is accepted. based on a patch from Kero van Gelder at + [ruby-core:26190]. + Tue Jun 8 15:14:11 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> * LEGAL: separated the section for parse.c. contributed by Paul diff --git a/lib/net/smtp.rb b/lib/net/smtp.rb index 7c9d9388ef..46cba7704f 100644 --- a/lib/net/smtp.rb +++ b/lib/net/smtp.rb @@ -651,8 +651,7 @@ module Net def send_message(msgstr, from_addr, *to_addrs) raise IOError, 'closed session' unless @socket mailfrom from_addr - rcptto_list to_addrs - data msgstr + rcptto_list(to_addrs) {data msgstr} end alias send_mail send_message @@ -705,8 +704,7 @@ module Net def open_message_stream(from_addr, *to_addrs, &block) # :yield: stream raise IOError, 'closed session' unless @socket mailfrom from_addr - rcptto_list to_addrs - data(&block) + rcptto_list(to_addrs) {data(&block)} end alias ready open_message_stream # obsolete @@ -830,9 +828,23 @@ module Net def rcptto_list(to_addrs) raise ArgumentError, 'mail destination not given' if to_addrs.empty? + ok_users = [] + unknown_users = [] to_addrs.flatten.each do |addr| - rcptto addr + begin + rcptto addr + rescue SMTPAuthenticationError + unknown_users << addr.dump + else + ok_users << addr + end + end + raise ArgumentError, 'mail destination not given' if ok_users.empty? + ret = yield + unless unknown_users.empty? + raise SMTPAuthenticationError, "failed to deliver for #{unknown_users.join(', ')}" end + ret end def rcptto(to_addr) @@ -2,7 +2,7 @@ #define RUBY_RELEASE_DATE "2010-06-08" #define RUBY_VERSION_CODE 187 #define RUBY_RELEASE_CODE 20100608 -#define RUBY_PATCHLEVEL 272 +#define RUBY_PATCHLEVEL 273 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 8 |