2010-03-27 3 views
7

Ruby Net :: SMTP를 사용하여 이메일을 보내고 싶습니다. 루틴Ruby Net :: SMTP - 숨은 참조 : 수신자가있는 이메일 보내기

send_message(msgstr, from_addr, *to_addrs) 

이메일을 보내는 내 코드에서 잘 작동하지만, 복사 장님을 필요로하는 사람들의 목록 (BCC : 전자 메일을 보내는 방법이 API에서 명확하지 않다.

뭔가가 누락되었거나 Net :: SMTP로는 불가능합니다.

답변

15

to_addrs 매개 변수 send_message은 봉투를 주소로 지정합니다. to_addrs에 주소를 포함해도 메시지 헤더에 포함되는 to 및 cc 주소에는 영향을주지 않습니다.

수신자를 bcc로 지정하려면 주소를 to_addrs 매개 변수에 포함 시키되 머리글에는 msgstr을 포함시키지 마십시오. 예를 들어 : [email protected], [email protected][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 

이 세 사람에게 이메일을 보내드립니다. 받은 메시지에는 [email protected][email protected] 만 보입니다.

+0

@ Philhoss - 감사합니다! 그것은 내가 필요로했던 바로 그 것이었다. –

+0

헤더 아래에 공백이 있으면 안됩니다 (From :, To : 등). – sunki

2

예 Net :: STMP를 사용하면 쉽게 처리 할 수 ​​없습니다. 그러나 귀하의 이메일 전송을 관리하는 정말 좋은 보석이 있습니다 (http://github.com/mikel/mail). 나는 그것을 사용하는 것이 좋습니다.

+1

@shingara - 감사합니다. 이 하나가 완성 된 것 같습니다. 하지만 Net :: SMTP로도 가능합니까? 왜냐하면 Net :: SMTP가 작업을 수행하기 위해 감추어 질 수 있다면 다른 메일 젬을 사용하지 않기를 바랍니다. –