Net :: SMTP ruby​​中的信封问题

时间:2012-08-06 07:41:59

标签: ruby-on-rails ruby smtp

我使用此代码使用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

但信封汇集在一起​​。收到的邮件中没有To和Subject。所有内容都来自于此部分本身。     发件人:接收者主题:垃圾邮件发送者列表

有人能说我代码中的错误是什么吗?

1 个答案:

答案 0 :(得分:3)

我相信你有两个问题。 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