Ruby Net :: SMTP - Отправить письмо с помощью bcc: получателей - PullRequest
7 голосов
/ 27 марта 2010

Я хотел бы использовать Ruby Net :: SMTP для отправки электронной почты. Рутина

send_message( msgstr, from_addr, *to_addrs )

хорошо работает в моем коде для отправки электронной почты, но из этого API не ясно, как отправлять электронную почту списку людей, которым необходимо слепое копирование (bcc :).

Я что-то упустил или это просто невозможно с Net :: SMTP?

Ответы [ 2 ]

16 голосов
/ 27 марта 2010

Параметр to_addrs в send_message указывает конверт для адресов. Включение адреса в 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.

2 голосов
/ 27 марта 2010

Да, это невозможно с Net :: STMP. Но есть действительно хорошая жемчужина для управления отправкой вашей электронной почты (http://github.com/mikel/mail). Я рекомендую вам использовать ее.

...