簡單郵件傳輸協議(SMTP)發送電子郵件及路由的e-mail郵件服務器之間的協議處理。
Ruby 提供 Net::SMTP 類的簡單郵件傳輸協議(SMTP)客戶端的連接,并提供了兩個新的方法:new 和 start.
new 帶兩個參數:
start 方法帶有以下這些參數:
server - IP SMTP服務器名稱,默認為localhost port - 端口號,默認為25 domain - 郵件發件人的域名,默認為 ENV["HOSTNAME"] account - 用戶名,默認為 nil password - 用戶密碼,默認為 nil authtype - 授權類型,默認為 cram_md5SMTP對象有一個實例方法調用sendmail,后者通常會被用來做郵寄消息的工作。它有三個參數:
source - 字符串或數組或任何同每個迭代一次返回一個字符串。 sender - 一個字符串,它將會出現在電子郵件字段中。 recipients - 代表收件人的地址的字符串的字符串或數組例子:
下面是一個簡單使用Ruby腳本的方法來發送一個電子郵件。試一次看看吧:
require 'net/smtp'message = <<MESSAGE_ENDFrom: Private Person <me@fromdomain.com>To: A Test User <test@todomain.com>Subject: SMTP e-mail testThis is a test e-mail message.MESSAGE_ENDNet::SMTP.start('localhost') do |smtp| smtp.send_message message, 'me@fromdomain.com', 'test@todomain.com'end
在這里已經放置了一個基本的電子郵件消息,使用文件,在這里同時注意正確格式化標題。一封郵件需要發件人,收件人,主題頭,從電子郵件的主體有一個空白行分隔。
隨著消息要發送郵件使用Net::SMTP連接到本地機器上的SMTP服務器,然后使用 send_message 方法,從地址,目的地址作為參數(即使地址電子郵件本身范圍內,這些并非總是用來將郵件路由)。
如果還沒有在機器上運行一個SMTP服務器,可以使用的Net::SMTP遠程SMTP服務器進行通信。除非使用一個webmail服務(如Hotmail或雅虎郵件),電子郵件提供商將提供外發郵件服務器的細節,可以提Net::SMTP,具體如下:
Net::SMTP.start('mail.your-domain.com')
這行代碼連接到SMTP服務器mail.your-domain.com 端口25。,而無需使用任何用戶名或密碼。不過,如果需要的話可以指定端口號或其他參數等。例如:
Net::SMTP.start('mail.your-domain.com', 25, 'localhost', 'username', 'password' :plain)
新聞熱點
疑難解答