电子邮件主题未正确分配Ruby net / smtp
我使用Ruby net / smtp
require 'net/smtp'
我使用以下方法发送邮件:
Net::SMTP.start(SMTP_SERVER) do |smtp| smtp.send_message(message,"mailman-ruby@example.de",reciepent) end
我想在我发送的邮件中添加一个主题,但在文档中找不到。
到目前为止我尝试过的是将主题放入这样的信息中:
<<END_OF_MESSAGE Subject: test message . . . rest of the message END_OF_MESSAGE
不幸的是,这并不成功!
任何人都知道如何使用’smtp / net’设置主题?
net/smtp
是一个非常低级的库。 它希望message
是一封电子邮件,包括所有标题。
从文档中
msgstr = < To: Destination Address Subject: test message Date: Sat, 23 Jun 2001 16:26:43 +0900 Message-Id: This is a test message. END_OF_MESSAGE require 'net/smtp' Net::SMTP.start('your.smtp.server', 25) do |smtp| smtp.send_message msgstr, 'your@mail.address', 'his_address@example.com' end
在您的情况下,请确保在标题和正文之间添加新行。 更改
<
至
<
我强烈建议您使用mail
,而不是使用net/smtp
。 mail
使用更高级别的界面来发送电子邮件,而不会失去对邮件的控制。
如果你真的不关心高级用法,你也可以切换到pony
。
主题的责任不是SMTP协议的责任。 它保存在一个SMTP命令中,也就是说, DATA
与此库的责任无关。
但是, DATA
将包含正确的(规范指示的)标头,甚至包含未指定但未被禁止的某些标头。 PGP
根据RFC 5321 (和预期的那样)“服务器SMTP系统不应该根据RFC 822或MIME(RFC 2045 [21])消息头部分或消息体中的感知缺陷拒绝消息。”
所以,你的答案将是:“你没有使用它设置主题。” 但是您可以在其中设置包含该信息的DATA。
您链接到的文档有一个完全相同的示例:
msgstr = < To: Destination Address Subject: test message Date: Sat, 23 Jun 2001 16:26:43 +0900 Message-Id: This is a test message. END_OF_MESSAGE require 'net/smtp' Net::SMTP.start('your.smtp.server', 25) do |smtp| smtp.send_message msgstr, 'your@mail.address', 'his_address@example.com' end
这里没有链接的文档,因为您已经提供了链接。