Ruby Net::SMTP - 使用密件抄送发送电子邮件:收件人

Posted

技术标签:

【中文标题】Ruby Net::SMTP - 使用密件抄送发送电子邮件:收件人【英文标题】:Ruby Net::SMTP - Send email with bcc: recipients 【发布时间】:2011-02-01 13:48:52 【问题描述】:

我想使用 Ruby Net::SMTP 发送电子邮件。例行公事

send_message( msgstr, from_addr, *to_addrs )

在我的发送电子邮件的代码中效果很好,但是从这个API 中不清楚如何将电子邮件发送到需要被盲目复制的人员列表(密件抄送:)。

是我遗漏了什么,还是 Net::SMTP 无法实现?

【问题讨论】:

【参考方案1】:

是的,使用 Net::STMP 并不容易。但是有一个非常棒的宝石来管理您的电子邮件发送 (http://github.com/mikel/mail)。我鼓励你使用它。

【讨论】:

@shingara - 谢谢。这个看起来很完整。但是,Net::SMTP 甚至有可能吗?我问这个是因为,如果可以哄骗 Net::SMTP 来完成这项工作,我们希望避免使用另一个 Mail gem。【参考方案2】:

send_messageto_addrs 参数指定地址的信封。在to_addrs 中包含地址对包含在邮件标头中的 to 和 cc 地址没有影响。

要密件抄送收件人,请将地址包含在to_addrs 参数中,但不要将其包含在msgstr 的标头中。例如:

msgstr = <<EOF
From: from@example.org
To: to@example.org
Cc: cc@example.org
Subject: Test BCC

This is a test message.
EOF

Net::SMTP.start(smtp_server, 25) do |smtp|
  smtp.send_message msgstr, 'from@example.org', 
    'to@example.org', 'cc@example.org', 'bcc@example.org'
end

这将向三个收件人发送电子邮件:to@example.org、cc@example.org 和 bcc@example.org。只有 to@example.org 和 cc@example.org 会在收到的消息中可见。

【讨论】:

@Phil Ross - 谢谢!这正是我所需要的。 注意标题下不能有空格(From:, To: 等)

以上是关于Ruby Net::SMTP - 使用密件抄送发送电子邮件:收件人的主要内容,如果未能解决你的问题,请参考以下文章

如何使用mailgun php API仅将邮件发送到密件抄送? [复制]

Laravel 邮件密件抄送

无法通过 Mandrill 发送密件抄送电子邮件(通过 Laravel)

梨邮件功能密件抄送不会发送

PHP 电子邮件发送密件抄送

使用 PHP 向使用 Gmail API 发送的电子邮件添加密件抄送