亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Ruby > 正文

在Ruby中利用Net::SMTP類發送電子郵件的教程

2020-10-29 19:39:32
字體:
來源:轉載
供稿:網友

簡單郵件傳輸協議(SMTP)發送電子郵件及路由的e-mail郵件服務器之間的協議處理。

Ruby 提供 Net::SMTP 類的簡單郵件傳輸協議(SMTP)客戶端的連接,并提供了兩個新的方法:new 和 start.

    new 帶兩個參數:

  1.         server name 默認為 localhost
  2.         port number  默認為熟知的 25

    start 方法帶有以下這些參數:

  •         server - IP SMTP服務器名稱,默認為localhost
  •          port - 端口號,默認為25
  •         domain - 郵件發件人的域名,默認為 ENV["HOSTNAME"]
  •         account - 用戶名,默認為 nil
  •         password - 用戶密碼,默認為 nil
  •         authtype - 授權類型,默認為 cram_md5

SMTP對象有一個實例方法調用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)

這個例子連接mail.your-domain.com到SMTP服務器使用的用戶名和密碼以純文本格式。它標識為localhost客戶端的主機名。
使用Ruby發送HTML電子郵件:

當想要發送文本消息,Ruby所有內容將被視為簡單的文本。即使會在短信中包含HTML標記,它會顯示簡單的文本和HTML標記將不會格式化HTML語法。但是Ruby的 Net::SMTP 提供了實際的HTML郵件發送HTML消息的選項。

在發送電子郵件消息時,可以指定一個MIME版本,內容類型和字符集發送HTML電子郵件。
例如:

下面的例子作為電子郵件發送HTML內容。試一次看看吧:

require 'net/smtp'message = <<MESSAGE_ENDFrom: Private Person <me@fromdomain.com>To: A Test User <test@todomain.com>MIME-Version: 1.0Content-type: text/htmlSubject: SMTP e-mail testThis is an e-mail message to be sent in HTML format<b>This is HTML message.</b><h1>This is headline.</h1>MESSAGE_ENDNet::SMTP.start('localhost') do |smtp| smtp.send_message message, 'me@fromdomain.com',                'test@todomain.com'end

作為電子郵件的附件發送:

混合內容發送一封電子郵件,要求設置Content-type頭為 multipart/mixed。然后,文本和附件部分可以指定 boundaries 范圍內。

兩個連字符后跟一個唯一的編號,不能出現在電子郵件的消息部分的邊界開始。最后一個邊界表示電子郵件的最后一節的結尾也必須有兩個連字符。

附加文件使用 pack("m") 函數來base64編碼傳輸之前進行編碼。
例子:

下面的例子將文件 /tmp/test.txt 作為附件發送。試一次看看吧:

require 'net/smtp'filename = "/tmp/test.txt"# Read a file and encode it into base64 formatfilecontent = File.read(filename)encodedcontent = [filecontent].pack("m")  # base64marker = "AUNIQUEMARKER"body =<<EOFThis is a test email to send an attachement.EOF# Define the main headers.part1 =<<EOFFrom: Private Person <me@fromdomain.net>To: A Test User <test@todmain.com>Subject: Sending AttachementMIME-Version: 1.0Content-Type: multipart/mixed; boundary=#{marker}--#{marker}EOF# Define the message actionpart2 =<<EOFContent-Type: text/plainContent-Transfer-Encoding:8bit#{body}--#{marker}EOF# Define the attachment sectionpart3 =<<EOFContent-Type: multipart/mixed; name=/"#{filename}/"Content-Transfer-Encoding:base64Content-Disposition: attachment; filename="#{filename}"#{encodedcontent}--#{marker}--EOFmailtext = part1 + part2 + part3# Let's put our code in safe areabegin  Net::SMTP.start('localhost') do |smtp|   smtp.sendmail(mailtext, 'me@fromdomain.net',             ['test@todmain.com']) endrescue Exception => e  print "Exception occured: " + e end 

注意:可以指定多個目的地內部數組,但他們需要用逗號分隔。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲韩国日本中文字幕| 久久精品最新地址| 成人xvideos免费视频| 欧美性在线观看| 欧美高清理论片| 欧美在线观看网址综合| 久久人人爽人人| 欧美日韩国产区| 国产男女猛烈无遮挡91| 欧美精品性视频| 日韩精品免费视频| 欧美国产日韩一区二区| 欧美国产日韩精品| 日韩成人在线网站| 国产精品爽黄69| 亚洲一区二区国产| 日韩在线免费观看视频| 亚洲性日韩精品一区二区| 国产精品免费看久久久香蕉| 国产亚洲欧美一区| 91精品久久久久久久久不口人| 国产精品亚洲自拍| 欧洲一区二区视频| 欧美二区乱c黑人| 国产精品一区二区三区免费视频| 亚洲国产精品人久久电影| 亚洲欧美日韩国产成人| 青青草99啪国产免费| 精品在线观看国产| 久久综合伊人77777蜜臀| 亚洲欧洲高清在线| 中文字幕九色91在线| 精品夜色国产国偷在线| 成人国产精品一区二区| 亚洲电影免费在线观看| 国产日产欧美精品| 亚洲最大av网站| 久久人91精品久久久久久不卡| 91情侣偷在线精品国产| 中文字幕日韩在线播放| 国产精品视频专区| 欧美黄色片免费观看| 国产精品自产拍高潮在线观看| 国产精自产拍久久久久久| www.欧美精品| 国产精品福利在线观看网址| 亚洲国产精品女人久久久| 日本久久久久久| 亚洲在线一区二区| 国产精品老女人精品视频| 欧美久久久精品| 欧美一级高清免费| 亚洲视频axxx| 日本精品一区二区三区在线播放视频| 日韩精品极品毛片系列视频| 久久久电影免费观看完整版| 国产精品99导航| 亚洲综合小说区| 亚洲天堂av电影| 久久精品91久久久久久再现| 亚洲国产成人久久| 日韩成人av在线| 国产成人精品免费久久久久| 国产视频精品免费播放| 欧美刺激性大交免费视频| 国产精品露脸av在线| 久久久精品久久久久| 亚洲精品国产品国语在线| 日韩在线免费高清视频| 欧美成人一区在线| 欧美专区中文字幕| 国产69精品久久久久9999| 国产精品第100页| 91色p视频在线| 欧美国产视频一区二区| 亚洲国产精品va在看黑人| 亚洲电影免费在线观看| 国产欧美精品久久久| 欧美—级a级欧美特级ar全黄| 亚洲图片制服诱惑| 欧美xxxx综合视频| 亚洲午夜激情免费视频| 欧美一级视频免费在线观看| 亚洲午夜未满十八勿入免费观看全集| 国产欧美 在线欧美| 久久亚洲精品一区二区| 秋霞午夜一区二区| 成人午夜一级二级三级| 国产福利精品视频| 日韩成人中文字幕在线观看| 国产成人欧美在线观看| 久久偷看各类女兵18女厕嘘嘘| 亚洲视频日韩精品| 久久视频在线视频| 日韩成人av网址| 欧美一区二区三区……| 中文字幕欧美日韩va免费视频| 精品久久久久久久久久久| 亚洲国产精品va| 欧美性生交大片免费| 成人激情视频在线播放| 日韩最新在线视频| 亚洲影视中文字幕| 日韩在线观看网址| 亚洲精品日韩丝袜精品| 国产欧美va欧美va香蕉在| 日韩成人黄色av| 国语自产精品视频在免费| 亚洲天堂久久av| 国产精品男人爽免费视频1| 亚洲韩国日本中文字幕| 青青草成人在线| 中文字幕无线精品亚洲乱码一区| 国产91在线播放| 亚洲精品欧美一区二区三区| 中文字幕久热精品在线视频| 亚洲精品福利视频| 国产欧美日韩免费看aⅴ视频| 欧美一级在线播放| 亚洲欧美第一页| 国产精品a久久久久久| 欧美成人午夜激情在线| 欧美精品videossex性护士| 在线成人激情黄色| 91国产视频在线播放| 精品中文视频在线| 91av在线精品| 国内精品一区二区三区四区| 国产欧美精品一区二区| 欧美久久久精品| 精品国产依人香蕉在线精品| 亚洲最新av网址| 国产97在线亚洲| 欧美在线观看网址综合| 久久69精品久久久久久久电影好| 亚洲精品www久久久久久广东| 97视频在线免费观看| 国产亚洲精品一区二区| 亚洲人成电影网站色| 欧美一级免费看| 美女999久久久精品视频| 亚洲福利小视频| 欧美一级淫片播放口| 欧美亚洲另类激情另类| www.99久久热国产日韩欧美.com| 亚洲国产成人久久| 日韩国产精品视频| 欧美日韩国产专区| 日韩av在线免费| 91地址最新发布| 欧美精品免费在线观看| 国模极品一区二区三区| 亚洲四色影视在线观看| 国产成人精品久久二区二区| 欧美成人免费播放| 狠狠躁夜夜躁人人爽天天天天97| 欧美黑人巨大精品一区二区| 欧美日韩免费在线| 亚洲理论在线a中文字幕| 国产精品日韩欧美综合| 欧美第一淫aaasss性| 日韩高清电影免费观看完整| 亚洲国产欧美日韩精品| 九九精品在线视频|