2010-03-27 2 views
7

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

send_message(msgstr, from_addr, *to_addrs) 

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

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

ответ

15

Параметр to_addrssend_message указывает конверт по адресам. Включение адреса в to_addrs не влияет на адреса to и cc, которые входят в заголовок сообщения.

Чтобы получить адрес получателя, укажите адрес в параметре to_addrs, но не включайте его в заголовки в msgstr. Например:

msgstr = <<EOF 
From: [email protected] 
To: [email protected] 
Cc: [email protected] 
Subject: Test BCC 

This is a test message. 
EOF 

Net::SMTP.start(smtp_server, 25) do |smtp| 
    smtp.send_message msgstr, '[email protected]', 
    '[email protected]', '[email protected]', '[email protected]' 
end 

Это будет посылать по электронной почте три получателей: [email protected], [email protected] и [email protected] В полученном сообщении будет отображаться только адрес: [email protected] и [email protected]

+0

@Phil Ross - Спасибо! Это было именно то, что мне нужно. –

+0

Обратите внимание, что под заголовками не должно быть пробелов (From :, To: и т. Д.). – sunki

2

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

+1

@shingara - Спасибо. Это выглядит полным. Но возможно ли это с Net :: SMTP? Я спрашиваю об этом, потому что мы хотели бы избежать использования другого почтового ящика, если Net :: SMTP можно уговорить выполнить эту работу. –