咳です。 ruby 1.2.3(99/02/16) [i586-linux] を使ってます。 話題のイテレータなんですが、 irb(main):001:0> str = '1 2 3' irb(main):002:0> str.split.each do |str| str = 'foo' end irb(main):003:0> p str "foo" となるのは正しい挙動でしょうか ? ブロックの中の変数(?) str に代入したら、 外の str に代入されました。 irb(main):001:0> str = '1 2 3' irb(main):002:0> str.split.each do |elem| elem = 'foo' end irb(main):003:0> p elem NameError: undefined local variable or method `elem' for #<Object:0x401030f0> こっちはなんとなくわかる気がするのですが…。 これでいいのかな? じつは出沢さんの smtp_send.rb を利用させてもらっていて to_list に複数のアドレスがあると最後のアドレスだけが To: に書かれるので気づきました。 Rubyかsmtp_send.rbどちらかの誤りだと思うんですがどうでしょうか? 私は以下の通りsmto_send.rbを変更してしのぎました。 =begin Index: smtp_send.rb =================================================================== RCS file: /home/mas/lib/cvsroot/labo/qsw/smtp_send.rb,v retrieving revision 1.2 retrieving revision 1.3 diff -c -r1.2 -r1.3 *** smtp_send.rb 1999/04/02 15:26:32 1.2 --- smtp_send.rb 1999/04/07 13:52:40 1.3 *************** *** 132,138 **** end # 送信 ! def send(to,from,subject,txt,xheader="",cc="",bcc="") if xheader > "" xheader = "Content-Transfer-Encoding: 7bit\n" + xheader else --- 132,138 ---- end # 送信 ! def send(tolist,from,subject,txt,xheader="",cc="",bcc="") if xheader > "" xheader = "Content-Transfer-Encoding: 7bit\n" + xheader else *************** *** 140,149 **** end content_type = "text/plain; charset="+ ((txt =~ /\e|[\x80-\xff]/)? "ISO-2022-JP" : "us-ascii") ! if(to != "") until mail("<"+addr_real(from)+">"); sendcmd("RSET") ;end ! to.split(/\s*,\s*/).each{|to| to=addr_real(to); rcpt(to,true)[0] if to > "" } cc.split(/\s*,\s*/).each{|to| to=addr_real(to); --- 140,149 ---- end content_type = "text/plain; charset="+ ((txt =~ /\e|[\x80-\xff]/)? "ISO-2022-JP" : "us-ascii") ! if(tolist != "") until mail("<"+addr_real(from)+">"); sendcmd("RSET") ;end ! tolist.split(/\s*,\s*/).each{|to| to=addr_real(to); rcpt(to,true)[0] if to > "" } cc.split(/\s*,\s*/).each{|to| to=addr_real(to); *************** *** 151,157 **** } data ! send_header(to,from,xheader,cc,subject, content_type) body(txt) eom() end --- 151,157 ---- } data ! send_header(tolist,from,xheader,cc,subject, content_type) body(txt) eom() end *************** *** 166,172 **** data() send_header("blind-copy-recipients:;", from,"","","Bcc: "+subject,"Message/rfc822") ! send_header(to,from,xheader,cc,subject,content_type) body(txt) eom() end --- 166,172 ---- data() send_header("blind-copy-recipients:;", from,"","","Bcc: "+subject,"Message/rfc822") ! send_header(tolist,from,xheader,cc,subject,content_type) body(txt) eom() end *************** *** 188,193 **** --- 188,196 ---- ################################### # $:Id:$ # $Log: smtp_send.rb,v $ + # Revision 1.3 1999/04/07 13:52:40 mas + # *** empty log message *** + # # Revision 1.2 1999/04/02 15:26:32 mas # *** empty log message *** # =end