我正在尝试在Ruby中创建一个正常的smtp消息:
def send_email(msg, to)
require 'net/smtp'
require 'tlsmail'
from = 'user@gmail.com'
p = hmhmm
msgstr = <<-END_OF_MESSAGE
From: User <user@gmail.com>
To: Jensa <jensa11.11.1@gmail.com>
Subject: Titel
Hej PÅ dig. Inte under. # <- swedish ;)
END_OF_MESSAGE
Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
Net::SMTP.start('smtp.gmail.com', 587, 'gmail.com', from, p, :login) do |smtp|
smtp.send_message msgstr, from, to
end
puts "message sent"
end
发送消息,但除“TO”地址之外的所有数据都在消息的“FROM”字段中结束,如下所示:
FROM: User <user@gmail.com> To: Jensa Subject: Titel Hej PÅ dig. Inte under.<user@gmail.com>
Date: 9 February 2012 14.36.03 CET
邮件正文中没有任何内容。
当我在“Titel”之后添加'\ n'时,之后的所有文本都会按照它应该放在消息中:
From: User <user@gmail.com> To: Jensa Subject: Titel <user@gmail.com>
Date: 9 februari 2012 14.36.03 CET
Hej PÅ dig. Inte under.
但是“TO”地址仍然不可见,而且全部都在FROM字段中。
有什么问题?
答案 0 :(得分:2)
你必须使用CRLF来分隔每一行。
我猜你的线目前只是被“\ r”或“\ n”分开 - 而不是两者。尝试:
msgstr = [
"From: User <user@gmail.com>",
"To: Jensa <jensa11.11.1@gmail.com>",
"Subject: Titel",
"",
"Hej PÅ dig. Inte under." # <- swedish ;)
].join("\r\n")