2010-03-27 6 views
7

Je voudrais utiliser Ruby Net :: SMTP pour envoyer des emails. La routineRuby Net :: SMTP - Envoyer un e-mail avec bcc: destinataires

send_message(msgstr, from_addr, *to_addrs) 

fonctionne bien dans mon code pour envoyer des e-mail, mais on ne sait pas de ce API comment envoyer un courriel à une liste de personnes qui ont besoin d'être aveugle copié (Cci :).

Ai-je raté quelque chose, ou est-ce que ce n'est tout simplement pas possible avec Net :: SMTP?

Répondre

15

Le paramètre to_addrs de send_message spécifie l'enveloppe aux adresses. L'inclusion d'une adresse dans to_addrs n'a aucun effet sur les adresses to et cc incluses dans l'en-tête du message.

Pour cci un destinataire, incluez l'adresse dans le paramètre to_addrs, mais ne l'incluez pas dans les en-têtes au msgstr. Par exemple:

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 

Ceci enverra un courriel à trois destinataires: [email protected], [email protected] et [email protected] Seuls [email protected] et [email protected] seront visibles dans le message reçu.

+0

@Phil Ross - Merci! C'était exactement ce dont j'avais besoin. –

+0

Notez qu'il ne doit pas y avoir d'espaces en-dessous des en-têtes (De:, À: et etc) – sunki

2

Oui, ce n'est pas possible avec Net :: STMP. Mais il y a un très bon petit bijou pour gérer votre envoi d'email (http://github.com/mikel/mail). Je vous encourage à l'utiliser.

+1

@shingara - Merci. Celui-ci semble complet. Mais est-ce encore possible avec Net :: SMTP? Je demande cela parce que, nous aimerions éviter d'utiliser un autre gem Mail si Net :: SMTP peut être cajolé pour faire le travail. –