運行環境:
ruby 1.8.6
rails 1.2.5
gem 1.0.1
這裡用的是gmail的伺服器,由於rails中的actionMailer不支援TLS(SSL)串連,但這卻是Gmail SMTP伺服器唯一的傳輸方式。網上已經有專門這個問題提供的plugin,下面總結一下配置的具體步驟:
1.安裝外掛程式: 開啟cmd,進入rails項目的目錄
輸入 ruby script/plugin install http://svn.xlsuite.org/trunk/vendor/plugins/action_mailer_tls/
然後在項目目錄下尋找"smtp_tls.rb",並將其放到項目的lib目錄下
2.配置rails項目的環境:
開啟項目config/environment.rb檔案:
在開頭加上:require 'smtp_tls' #引用libsmtp_tls.rb
ActionMailer::Base.delivery_method = :smtp #使用smtp發送郵件
ActionMailer::Base.default_charset = "UTF-8" #指定發送郵件時使用的字元集
ActionMailer::Base.server_settings = {
:address => "smtp.gmail.com", #使用的郵件伺服器
:port => 587, #郵件伺服器的連接埠號碼
:domain => "xxx.com", #暫時忽略
:authentication => :login, #不是很清楚,照著寫
:user_name => "yourname@gmail.com", #使用郵件伺服器的帳號(這裡是google,所以是goole郵箱的帳號)
:password => "yourpassword", #使用郵件伺服器的密碼
#注意: 這裡我只是指定了郵件伺服器,不是說我指定了google的郵件伺服器,就非要使用google的郵箱發送郵件,也可以使用別的郵箱通過google的郵件伺服器發送
}
3.重啟項目server
如果你的rails版本較新:
在environment.rb檔案Rails::Initializer.run do |config| 和 end之間添加如下的配置資訊:
# config/environments/development.rb
config.action_mailer.raise_delivery_errors = true #錯誤異常是事拋給應用程式
# set delivery method to :smtp, :sendmail or :test
config.action_mailer.delivery_method = :smtp # 發送郵件方式
# these options are only needed if you choose smtp delivery
config.action_mailer.smtp_settings = {
:address => 'smtp.gmail.com',
:port => 587,
:authentication => :plain,
:user_name => 'yourname@gmail.com', #你的gmail帳號
:password => 'yourpassword' #你的gmail密碼
}