2010-03-27 10 views
7

Vorrei utilizzare Ruby Net :: SMTP per inviare e-mail. La routineRuby Net :: SMTP - Invia e-mail con ccc: destinatari

send_message(msgstr, from_addr, *to_addrs) 

funziona bene nel mio codice per l'invio di e-mail, ma non è chiaro da questo API come inviare e-mail a una lista di persone che hanno bisogno di essere ciechi copiato (Ccn :).

Mi manca qualcosa o semplicemente non è possibile con Net :: SMTP?

risposta

15

Il parametro to_addrs di send_message specifica la busta agli indirizzi. Includere un indirizzo in to_addrs non ha alcun effetto sugli indirizzi to e cc che vengono inclusi nell'intestazione del messaggio.

Per accedere a un destinatario, includere l'indirizzo nel parametro to_addrs, ma non includerlo nelle intestazioni in msgstr. Per esempio:

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 

Ciò inviare una mail a tre destinatari: [email protected], [email protected] e [email protected] Solo per @@esempio.org e [email protected] saranno visibili nel messaggio ricevuto.

+0

@Phil Ross - Grazie! Era esattamente ciò di cui avevo bisogno. –

+0

Nota che non ci devono essere spazi sotto le intestazioni (Da :, A: e così via) – sunki

2

Sì, non è possibile con Net :: STMP. Ma c'è un vero gioiello per gestire l'invio di e-mail (http://github.com/mikel/mail). Ti incoraggio ad usarlo.

+1

@shingara - Grazie. Questo sembra completo. Ma è possibile anche con Net :: SMTP? Lo chiedo perché, vorremmo evitare di usare un'altra gemma di posta se Net :: SMTP può essere convinto a fare il lavoro. –