首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

Ruby 使用 Net::SMTP 發送郵件教學:純文字、HTML 格式與附件寄送

     編輯:更多程式設計知識

基本寄送流程

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']。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved