婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Ruby實現發送郵件的兩個方法

Ruby實現發送郵件的兩個方法

熱門標簽:淮安自動外呼系統供應商 征服者企業地圖標注 中牟外呼系統違法嗎 外呼線路從哪里出來的 巫師3地圖標注魔力之所 天津外呼系統怎么收費 漯河電銷 AI電銷機器人 線路 柯城手機地圖如何做地圖標注

其實只要你任性的可以,用telnet也是可以發郵件的哦。不過本貓沒那么任性,還是用KISS原則來發郵件吧。本篇博文只介紹了如何發郵件,但沒涉及收郵件的事,以后如有機會會單獨開一篇博文介紹。

Ruby通過smtp發郵件有2種操作手段,一是直接用Net::SMTP來發送,比較底層。如果還要發送附件,則需要額外gem:mailfactory,而mailfactory又依賴于包mime-types。即便如此如果郵件服務器連接需要ssl,則還需要require文件smtp-tls.rb,而這個rb文件需要openssl包的支持啊!第二種方法是直接使用高層的gem包mail,包含添加附件的功能,不過該gem也依賴于mime-types包,這個包專門用來描述郵件文件格式的,俗稱多用途互聯網郵件擴展類型啊。下面依次介紹下每種方法。

方法一:使用Net::SMTP

正常的非加密連接的smtp端口號為25,如果是加密則可能為587或465,要看具體的郵件服務器的說明。開始用的是QQ的郵件服務器,但老是不穩定,遂換為hotmail的,但hotmail需要ssl連接。按上面所述需要openssl包。麻煩開始了:rubygems.org用gem死活連不上,后來將openssl.gem直接下載到本地,用gem install -l openssl.gem安裝,發現require還是出錯,需要native ext:openssl.so動態庫擴展,進入openssl的ext源代碼目錄用make編譯提示出錯:Ignore OpenSSL broken by Apple,提示我用其他的openssl庫路徑,我用毛啊!是不支持Mac OS X嗎?但是檢查了系統中是安裝過openssl的:

復制代碼 代碼如下:

/private/etc/openssl
/private/etc/openssl/cert.pem
/usr/bin/openssl
/usr/lib/pkgconfig/openssl.pc
/usr/local/Cellar/openssl

動態庫也是存在的,但不是ruby 的c_ext!

復制代碼 代碼如下:

apple@kissAir: ruby_src$locate libssl.dylib
/Applications/Xcode6-Beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/lib/libssl.dylib
/Applications/Xcode6-Beta4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib/libssl.dylib
/opt/com.bitaxis/lib/libssl.dylib
/opt/local/lib/libssl.dylib
/usr/lib/libssl.dylib
/usr/local/Cellar/openssl/1.0.1e/lib/libssl.dylib

神馬情況?考慮到tk對ruby的問題(見我另一篇在mac OS X下ruby使用tk的博文),我懷疑該ruby版本本身不支持原生openssl,這個版本是我在ruby-lang下載的ruby-2.1.5源代碼編譯并且安裝的!遂用rvm下載了其ruby-2.1.5版本,一試竟然可以鳥!但隨后發現hotmail.com的加密連接還是連不上,又換回QQ郵箱,用非加密的smtp,25端口連接。這回基本可以穩定發送了,如果換位163的郵箱測試發現更加穩定,上未重構的代碼:

復制代碼 代碼如下:

#!/usr/bin/ruby
#encoding:utf-8

require 'net/smtp'
require './smtp-tls.rb'
require 'mailfactory'

#Senders and Recipients
from_name = 'localhost'
from_mail = '12345678@qq.com'
to_name = 'ks'
to_mail = '88888888@qq.com'

#Servers and Authentication
#smtp_host   = 'smtp.qq.com'
smtp_host = 'smtp.163.com'
smtp_port   =  25 #465 587 25
#smtp_domain = 'qq.com'
smtp_domain  = 'localhost.localdomain'
smtp_user = "wangyi@163.com"
smtp_pwd = "xxxxxxxx"
#smtp_user   = "12345678@qq.com"
#smtp_pwd    = 'xxxxxxxx'

#The subject and the message
t = Time.now
subj = '1331 thinkpad test hopy'
msg_body = "send msg from ruby.\n"

#The date/time should look something like: Thu, 03 Jan 2006 12:33:22 -0700
msg_date = t.strftime("%a, %d %b %Y %H:%M:%S +0800")

#Compose the message for the email

神馬情況?考慮到tk對ruby的問題(見我另一篇在mac OS X下ruby使用tk的博文),我懷疑該ruby版本本身不支持原生openssl,這個版本是我在ruby-lang下載的ruby-2.1.5源代碼編譯并且安裝的!遂用rvm下載了其ruby-2.1.5版本,一試竟然可以鳥!但隨后發現hotmail.com的加密連接還是連不上,又換回QQ郵箱,用非加密的smtp,25端口連接。這回基本可以穩定發送了,如果換位163的郵箱測試發現更加穩定,上未重構的代碼:

復制代碼 代碼如下:

#!/usr/bin/ruby
#encoding:utf-8

require 'net/smtp'
require './smtp-tls.rb'
require 'mailfactory'

#Senders and Recipients
from_name = 'localhost'
from_mail = '12345678@qq.com'
to_name = 'ks'
to_mail = '88888888@qq.com'

#Servers and Authentication
#smtp_host   = 'smtp.qq.com'
smtp_host = 'smtp.163.com'
smtp_port   =  25 #465 587 25
#smtp_domain = 'qq.com'
smtp_domain  = 'localhost.localdomain'
smtp_user = "wangyi@163.com"
smtp_pwd = "xxxxxxxx"
#smtp_user   = "12345678@qq.com"
#smtp_pwd    = 'xxxxxxxx'

#The subject and the message
t = Time.now
subj = '1331 thinkpad test hopy'
msg_body = "send msg from ruby.\n"

#The date/time should look something like: Thu, 03 Jan 2006 12:33:22 -0700
msg_date = t.strftime("%a, %d %b %Y %H:%M:%S +0800")

#Compose the message for the email

復制代碼 代碼如下:

#如果使用mailfactory發送則實際用不著msg格式了
msg = END_OF_MESSAGE
Date: #{msg_date}
From: #{from_name} #{from_mail}>
To: #{to_name} #{to_mail}>
Subject: #{subj}

#{msg_body}
END_OF_MESSAGE

mail = MailFactory.new
mail.to = to_mail
mail.from = from_mail
mail.subject = subj
mail.text = msg_body
mail.attach(File.expand_path("./mail.rb"))   #發送附件

#smtp = Net::SMTP.new(smtp_host,587)
#smtp.enable_starttls
#Net::SMTP.start(smtp_host, smtp_port, smtp_domain, smtp_user, smtp_pwd, :plain) do |smtp|
Net::SMTP.start(smtp_host,smtp_port,smtp_domain, smtp_user, smtp_pwd, :login) do |smtp| 
  #smtp.send_message msg, smtp_user, to_mail
  #mail.to = to_mail
  #puts smtp.methods
  #smtp.enable_starttls
  smtp.send_message(mail.to_s,smtp_user,to_mail)
end

方法二:使用ruby gem:mail(未完待續)

mail是一個比較高級的郵件庫,包含了發送附件的功能。不過下載下來本地安裝后開始報錯提示refuse port 25之類的錯誤。開始我以為是權限不夠,用sudo執行后,發現在執行require 'mail'命令時又報錯!發現當初安裝時未以sudo權限安裝,先gem uninstall mail.gem,然后重新安裝:sudo gem install mail.gem,此時在sudo和普通權限下require 'mail'都正常鳥:

復制代碼 代碼如下:

#!/usr/bin/ruby

require 'mail'

smtp = { :address => 'smtp.163.com', :port => 25, :domain => '163.com', \
 :user_name => 'wangyi@163.com', :password => 'xxxxxxxx',\
 :enable_starttls_auto => true, :openssl_verify_mode => 'none' }
Mail.defaults { delivery_method :smtp, smtp }
mail = Mail.new do
  from 'wangyi@163.com'
  to '12345678@qq.com'
  subject 'test mail'
  body 'body:hello send mail way 2 :)'
  add_file File.expand_path("./mail2.rb")
end
mail.deliver!

有一個小問題,就是開始smtp中user_name和from里設置的發送郵件賬戶不一樣,導致老是發送失敗,這里都改成wangyi@163.com就可以了。但在方法一中可以不一樣哦。還有2種方法中domain改成'localhost‘等其他值也能發送成功,好像沒啥關系。

最后要說的是,2種方法都是用的非加密的方式連接,即郵件服務器允許非ssl方式連接,如果郵件服務器只能加密連接上面代碼就不能用。至于這時該如何寫代碼,若知道的各位童鞋請不吝賜教哦。

您可能感興趣的文章:
  • Ruby創建“關鍵字”同名方法別名的方法
  • ruby實現的文件自刪除代碼分享
  • 初步講解Ruby編程中的多線程

標簽:棗莊 河池 南昌 西雙版納 大慶 甘孜 內江 克拉瑪依

巨人網絡通訊聲明:本文標題《Ruby實現發送郵件的兩個方法》,本文關鍵詞  Ruby,實現,發送,郵件,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Ruby實現發送郵件的兩個方法》相關的同類信息!
  • 本頁收集關于Ruby實現發送郵件的兩個方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美三级视频在线播放| 一区二区三区在线免费| 成人小视频在线| 国产成人8x视频一区二区| 91精品国产综合久久香蕉麻豆| 成人午夜免费av| 懂色中文一区二区在线播放| 久久亚洲春色中文字幕久久久| 日本成人中文字幕| 久久九九99视频| 中文字幕亚洲区| 日韩av网站免费在线| 成人av网站免费| 精品国精品自拍自在线| 日韩美一区二区三区| 亚洲综合自拍偷拍| 亚洲成a人片在线观看中文| 日韩制服丝袜av| 国产成都精品91一区二区三| 国产成人小视频| 欧美午夜电影网| 中文字幕不卡在线播放| 久久福利资源站| 欧美日韩一级黄| 亚洲成a人v欧美综合天堂| 视频一区中文字幕国产| 欧美色欧美亚洲另类二区| 中文字幕免费不卡| 成人午夜精品在线| 国产免费成人在线视频| 国产成人亚洲精品狼色在线| 久久久99免费| 成人网页在线观看| 亚洲精品免费视频| 精品一区二区三区免费视频| 欧美一区二区三区四区视频| 五月天丁香久久| 欧美精品高清视频| 日韩av二区在线播放| 精品乱人伦一区二区三区| 国产在线视视频有精品| 一区二区三区四区在线免费观看 | youjizz久久| 亚洲人成亚洲人成在线观看图片 | 丰满少妇在线播放bd日韩电影| 欧美影片第一页| 国产盗摄精品一区二区三区在线| 国产女同互慰高潮91漫画| 黄色日韩网站视频| 亚洲一区二区三区三| 欧美日产国产精品| 亚洲小说欧美激情另类| 亚洲欧美日韩久久| 国产日韩欧美一区二区三区乱码 | 亚洲视频在线一区| 精品国产乱码久久久久久图片| 一本大道久久a久久精二百| 国产麻豆成人传媒免费观看| 亚洲精品大片www| 亚洲欧美在线视频| 最新日韩av在线| 欧美剧在线免费观看网站| 99久久夜色精品国产网站| 成人毛片在线观看| 不卡的av电影| 99久久国产综合精品色伊| 成人福利在线看| 成人av在线一区二区三区| 成人av网站在线| 在线免费观看视频一区| 国产制服丝袜一区| 91视视频在线观看入口直接观看www | 91视频在线观看| 欧美视频中文字幕| 懂色一区二区三区免费观看| 国产成人精品aa毛片| 97国产一区二区| 日本一区二区三区高清不卡 | 欧美主播一区二区三区| 欧美videos大乳护士334| 亚洲h动漫在线| 欧美日韩www| 日本91福利区| 666欧美在线视频| 亚洲曰韩产成在线| 91视频.com| 一二三四区精品视频| 色婷婷av一区二区三区大白胸| 久久午夜国产精品| 国产精品一区二区x88av| 久久久久久久综合| 国产91露脸合集magnet| 久久亚洲精华国产精华液| 成人午夜视频福利| 日欧美一区二区| 久久嫩草精品久久久精品一| 99在线精品观看| 亚洲一区二区三区自拍| 51精品秘密在线观看| 国产精品一色哟哟哟| 日韩成人午夜精品| 欧美福利视频导航| 另类欧美日韩国产在线| 欧美国产综合色视频| 在线观看不卡视频| 成人丝袜高跟foot| 奇米777欧美一区二区| 中文字幕在线观看不卡视频| 亚洲精品一区二区三区福利| 日本电影欧美片| 国产精品自拍在线| 蜜臀久久久99精品久久久久久| 亚洲综合色自拍一区| 亚洲精品欧美激情| 综合激情成人伊人| 国产精品无遮挡| 国产欧美精品日韩区二区麻豆天美| 在线观看三级视频欧美| 欧美在线不卡视频| 在线视频一区二区三| 欧美久久久久久久久久 | 一区二区三区视频在线观看| 国产亚洲欧美中文| 2022国产精品视频| 中文字幕av在线一区二区三区| 欧美成人高清电影在线| 6080国产精品一区二区| 91精品国产高清一区二区三区| 欧美丰满一区二区免费视频| 日韩视频一区在线观看| 久久免费的精品国产v∧| 最新日韩av在线| 婷婷国产在线综合| 狠狠色丁香婷婷综合| 91视频免费看| 欧美精选一区二区| 26uuu欧美| 亚洲综合在线免费观看| 国产91精品在线观看| 51精品秘密在线观看| 国产精品久久久久三级| 日韩激情中文字幕| 在线观看网站黄不卡| 成人欧美一区二区三区黑人麻豆 | 国产精品亚洲第一| 91色视频在线| 91精品婷婷国产综合久久 | 国产一区二区毛片| 91亚洲精品乱码久久久久久蜜桃| 欧美三级三级三级爽爽爽| 久久久久综合网| 亚洲高清中文字幕| 色婷婷狠狠综合| 中文字幕一区二区三中文字幕| 秋霞成人午夜伦在线观看| 欧美亚洲丝袜传媒另类| 亚洲精品乱码久久久久久久久| 波多野结衣中文字幕一区| 日本一区二区三区在线不卡| 久久成人免费电影| 国产午夜久久久久| 国产在线精品一区在线观看麻豆| 国产喂奶挤奶一区二区三区| 亚洲成国产人片在线观看| 成人av片在线观看| 2023国产一二三区日本精品2022| 天堂一区二区在线| 欧美日本韩国一区| 日本亚洲最大的色成网站www| 在线观看成人小视频| 亚洲香肠在线观看| 久久久久一区二区三区四区| 99精品欧美一区二区蜜桃免费| 一区二区三区中文免费| 色哟哟日韩精品| 国产一区二区三区电影在线观看| 18成人在线观看| 久久综合九色综合97婷婷| 91在线视频18| 国产一区二区调教| 日韩国产精品久久久久久亚洲| 精品久久久久久最新网址| 成人激情视频网站| 福利一区二区在线观看| 日本中文一区二区三区| 亚洲免费观看高清完整版在线观看| 欧美在线你懂得| 91美女精品福利| 97精品视频在线观看自产线路二| 裸体歌舞表演一区二区| 国产精品电影一区二区| 精品国产乱码久久久久久浪潮| 69堂亚洲精品首页| 在线91免费看| 欧美日韩国产一级| 91小视频免费观看| 成人av高清在线| 一本色道久久综合精品竹菊| 91最新地址在线播放| 91成人看片片|