0

我正在使用此代码使用 ruby​​ 和 SMTP 协议发送电子邮件

smtp = Net::SMTP.new 'smtp.gmail.com', 587
smtp.enable_starttls
smtp.start('smtp.gmail.com', 'username', 'password', :login)
msgstr = "From: Sender <Sender@gmail.com>
      To: Receiver <receiver@gmail.com>
      Subject: Spammers List

          This is a test message"
smtp.send_message(msgstr, 'sender@gmail.com', 'receiver@gmail.com')
smtp.finish

但是信封是一起来的。收到的邮件中没有收件人和主题。一切都像这样从自己的部分进来。发件人:收件人主题:垃圾邮件发送者列表

谁能告诉我代码中的错误是什么?

4

1 回答 1

3

我相信你有2个问题。SMTP 需要 cr-lf 换行符,并且标头不能有前导空格。我不确定这一点,但我认为最后一个消息行可能还需要以换行符结尾。如果您将内容构建为...

msgstr = <<SMTP
From: Sender <Sender@gmail.com>\r
To: Receiver <receiver@gmail.com>\r
Subject: Spammers List\r
\r
This is a test message\r
SMTP
于 2012-08-06T07:55:22.487 回答