加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何使用Ruby Mail.rb向多个收件人发送电子邮件

发布时间:2020-12-17 02:21:15 所属栏目:百科 来源:网络整理
导读:我写了一个小脚本来发送带有 Ruby附件的电子邮件.只要有一个收件人,它就像魅力一样,但我需要将邮件发送给收件人列表.收件人存储在yaml文件中,该文件由脚本读取,然后在循环的帮助下将电子邮件发送给每个收件人: Mail.defaults dodelivery_method :smtp,optio
我写了一个小脚本来发送带有 Ruby附件的电子邮件.只要有一个收件人,它就像魅力一样,但我需要将邮件发送给收件人列表.收件人存储在yaml文件中,该文件由脚本读取,然后在循环的帮助下将电子邮件发送给每个收件人:

Mail.defaults do
delivery_method :smtp,options
end

mail['mail_to'].each do |i|
    mail = Mail.new do 
        to i
        from mail['mail_from']
        subject mail_subject
        body mail_body
        add_file    :filename => 'Report.pdf',:content => File.read(global['filename_pdf'])
end
    mail.deliver!
end

然而,这只适用于第一个收件人,之后ruby抛出这个:

/home/juwi/.gem/ruby/1.9.1/gems/mail-2.5.4/lib/mail/check_delivery_params.rb:5:in `check_delivery_params': An SMTP From address is required to send a message. Set the message smtp_envelope_from,return_path,sender,or from address. (ArgumentError)
from /home/juwi/.gem/ruby/1.9.1/gems/mail-2.5.4/lib/mail/network/delivery_methods/smtp.rb:98:in `deliver!'
from /home/juwi/.gem/ruby/1.9.1/gems/mail-2.5.4/lib/mail/message.rb:248:in `deliver!'
from main.rb:47:in `block in <main>'
from main.rb:33:in `each'
from main.rb:33:in `<main>'

我真的不明白为什么会这样.所以我很想在这里开悟!

解决方法

我刚刚意识到从循环的第二次运行开始就没有结果,我才找到答案.看来,Ruby试图迭代“from”字段,好像它是一个数组.所以我明确地为它添加了一个变量,并解决了它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读