2010-03-27 30 views
7

Tôi muốn sử dụng Ruby Net :: SMTP để gửi email. Những thói quenRuby Net :: SMTP - Gửi email với bcc: người nhận

send_message(msgstr, from_addr, *to_addrs) 

hoạt động tốt trong mã của tôi để gửi email, nhưng nó không phải là rõ ràng từ API này làm thế nào để gửi email đến một danh sách những người mà cần phải bị mù sao chép (bcc :).

Tôi có thiếu thứ gì đó hoặc không thể thực hiện với Net :: SMTP?

Trả lời

15

Thông số to_addrs của send_message chỉ định phong bì cho địa chỉ. Bao gồm địa chỉ trong to_addrs không ảnh hưởng đến địa chỉ đến và cc được đưa vào tiêu đề thư.

Để bcc người nhận, hãy bao gồm địa chỉ trong thông số to_addrs, nhưng không bao gồm nó trong tiêu đề trong msgstr. Ví dụ:

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 

Điều này sẽ gửi email đến ba người nhận: [email protected], [email protected][email protected] Chỉ [email protected][email protected] mới hiển thị trong thư đã nhận.

+0

@Phil Ross - Cảm ơn! Đó là chính xác những gì tôi cần. –

+0

Lưu ý rằng không được có bất kỳ dấu cách nào bên dưới tiêu đề (From :, To: và v.v.) – sunki

2

Có thể không dễ dàng với Net :: STMP. Nhưng có một viên ngọc thực sự tuyệt vời để quản lý việc gửi email của bạn (http://github.com/mikel/mail). Tôi khuyến khích bạn sử dụng nó.

+1

@shingara - Cảm ơn. Cái này trông hoàn chỉnh. Nhưng nó có khả thi với Net :: SMTP không? Tôi hỏi điều này bởi vì, chúng tôi muốn tránh sử dụng một gem khác nếu Net :: SMTP có thể được dùng để thực hiện công việc. –

Các vấn đề liên quan