2010-03-27 8 views
7

Ich möchte Ruby Net :: SMTP verwenden, um E-Mails zu senden. Die RoutineRuby Net :: SMTP - E-Mail mit bcc: Empfänger senden

send_message(msgstr, from_addr, *to_addrs) 

funktioniert gut in meinem Code für E-Mail zu senden, aber es ist nicht klar, aus dieser API wie E-Mail an eine Liste von Personen zu senden, die blinde kopiert (bcc :) sein müssen.

Fehle ich etwas oder ist es mit Net :: SMTP einfach nicht möglich?

Antwort

15

Der to_addrs Parameter von send_message spezifiziert die Envelope zu Adressen. Das Einschließen einer Adresse in to_addrs hat keine Auswirkung auf die Adressen To und CC, die in dem Nachrichtenheader enthalten werden.

Um einen Empfänger zu bcc, geben Sie die Adresse in den to_addrs Parameter, aber nicht in den Kopfzeilen in msgstr enthalten. Zum Beispiel: [email protected], [email protected] und [email protected]:

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 

Dies wird eine E-Mail an drei Empfänger senden. Nur [email protected] und [email protected] sind in der empfangenen Nachricht sichtbar.

+0

@Phil Ross - Danke! Das war genau das, was ich brauchte. –

+0

Beachten Sie, dass es keine Leerzeichen unter den Headern geben darf (Von: bis: und etc) – sunki

2

Ja, es ist nicht einfach mit Net :: STMP. Aber es gibt ein wirklich großes Juwel, um Ihre E-Mail senden zu verwalten(). Ich ermutige Sie, es zu benutzen.

+1

@shingara - Danke. Dieser sieht komplett aus. Aber ist es mit Net :: SMTP überhaupt möglich? Ich frage das, weil wir es vermeiden möchten, ein anderes Mail-Juwel zu verwenden, wenn Net :: SMTP dazu gebracht werden kann, die Aufgabe zu erledigen. –

Verwandte Themen