邮件服务端口:
25端口(SMTP):25端口为SMTP(Simple Mail Transfer
Protocol,简单邮件传输协议)服务所开放的,是用于发送邮件。
465端口(SMTPS):465端口是为SMTPS(SMTP-over-SSL)协议服务开放的,这是SMTP协议基于SSL安全协议之上的一种变种协议,它继承了SSL安全协议的非对称加密的高度安全可靠性,可防止邮件泄露。SMTPS和SMTP协议一样,也是用来发送邮件的,只是更安全些,防止邮件被黑客截取泄露,还可实现邮件发送者抗抵赖功能。防止发送者发送之后删除已发邮件,拒不承认发送过这样一份邮件。
本地测试邮件服务:
1.创建工程:rails new test_mailer
2.脚手架:rails g mailer UserMailer
3.编辑app/mailer/user_mailer
class UserMailer < ActionMailer::Base default from: "[email protected]" def send_mail(params = {}) mail( :subject => 'abcAAAAAAAASDFADSFADSFADSFDASFASDF', :to => "[email protected]", :from => '[email protected]', :date => Time.now ) end end
4.配置邮件服务
ActionMailer::Base.delivery_method = :smtp config.action_mailer.perform_deliveries = true config.action_mailer.raise_delivery_errors = true config.action_mailer.default :charset => "utf-8" ActionMailer::Base.smtp_settings = { :address => "smtp.163.com", :port => 25, :domain => "163.com", :authentication => :login, :user_name => "****@163.com", :password => "****" }
5. 开启控制台rails c
6. 发送邮件 UserMailer.send_mail(nil).deliver
Redmine2.6中163邮件服务配置如下,可以使用如上方法测试邮件服务是否正常
development: email_delivery: delivery_method: :smtp smtp_settings: tls: true address: "smtp.163.com" port: 25 domain: "smtp.163.com" authentication: :login user_name: "**163.com" password: "***********"
Redmine2.6在配置SMTPS得时候报错:EOFError: end of file reached解决方案: 将Gemfile.lock中得mail版本从2.5.4降到2.5.3, 并在配置文件中新增 tls: true
development:
email_delivery:
delivery_method: :smtp
smtp_settings:
tls: true
address: "**.com"
port: 465
domain: "**.com"
authentication: :plain
user_name: "***@***.com"
password: "******"
更多精彩内容清关注微信订阅号: Ruby程序员