基本寄送流程
require 'net/smtp'
message = <
To: A Test User
Subject: SMTP e-mail test
This is a test e-mail message.
MESSAGE_END
Net::SMTP.start('localhost') do |smtp|
smtp.send_message message, 'me@fromdomain.com', 'test@todomain.com'
end
參數說明
Net::SMTP.start(host, port, domain, user, pass, auth_type)
send_message(source, sender, recipients)
寄送 HTML 郵件
message = <
To: A Test User
MIME-Version: 1.0
Content-type: text/html
Subject: SMTP e-mail test
This is an e-mail message to be sent in HTML format
This is HTML message.
This is headline.
MESSAGE_END
Net::SMTP.start('localhost') do |smtp|
smtp.send_message message, 'me@fromdomain.com', 'test@todomain.com'
end
寄送附件 (multipart/mixed)
require 'net/smtp'
filename = "/tmp/test.txt"
filecontent = File.read(filename)
encoded = [filecontent].pack("m") # Base64 編碼
marker = "AUNIQUEMARKER"
part1 = <
To: A Test User
Subject: Sending Attachement
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=#{marker}
--#{marker}
EOF
part2 = < e
puts "Exception: #{e}"
end
關鍵點
- 附件需 Base64 編碼(
pack("m"))。
- 境界標記
--#{marker} 分隔各部分,結尾加 --。
- 多收件人以陣列傳入:
['a@b.com', 'c@d.com']。