我使用此代码使用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。所有内容都来自于此部分本身。 发件人:接收者主题:垃圾邮件发送者列表
有人能说我代码中的错误是什么吗?
答案 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