使用net/smtp向多个收件人发送电子邮件

mCY*_*mCY 2 ruby email

我有这个代码:

require "net/smtp"

MAIL_SERVER = "xxx.ad.xxx.net"

def lib_sending_report(email_hash)

    # define message body

    message = <<"MESSAGE_END"

From: <#{email_hash[:sender]}>

To: <#{email_hash[:recipients]}>

MIME-Version: 1.0

Content-type: text/html

Subject: #{email_hash[:subject]}

<p>Hi All,</p>

    <p>We've just executed a round of load test.</p>

<p>Regards</p>
MESSAGE_END

    Net::SMTP.start(MAIL_SERVER) do |smtp|
      smtp.send_message message, email_hash[:sender], email_hash[:recipients]
    end
end

test = ""
lib_sending_report( {:sender => "abc@xxx.com",
                      :recipients => "abc@xxxx.com",
                      :subject => "Load.Test.Report.of.#{test}"} )
Run Code Online (Sandbox Code Playgroud)

当我改为:recipients => "abc@xxxx.com":recipients => "abc@xxxx.com;efg@xxx.com",它给了我这个错误:

 501 5.5.4 Invalid Address (Net::SMTPSyntaxError)
Run Code Online (Sandbox Code Playgroud)

:recipients => "abc@xxxx.com"只有一个收件人,我可以成功发送电子邮件.

我哪里错了?似乎我使用的分隔符(分号)是错误的.

我试图使用逗号而不是分号,但它没有用

the*_*Man 6

Net :: SMTP send_message采用"To:"地址字符串数组.

根据文件:

to_addr是字符串或字符串或字符串数​​组,表示目标邮件地址.

文档中的这个示例显示了如何:

Net::SMTP.start('smtp.example.com') do |smtp|
  smtp.send_message msgstr,
                    'from@example.com',
                    ['dest@example.com', 'dest2@example.com']
end