Redmine中关于邮件配置,本文进行了简单整理和总结设定相关的信息以及注意事项。并使用smtp和async_smtp两种方式在163和139的邮箱中均作验证可用。
redmine版本
项目 | 详细信息 |
---|---|
redmine版本 | 3.3 |
虽然只在3.3上进行了验证,但是其他版本应该也大体差不多。
设定文件
不同版本的文件目录虽然略有不同,但是相对目录大体一致:
配置文件名称 | 配置文件目录 |
---|---|
configuration.yml | config |
如果没有的话,一般会有一个configuration.yml.example的文件,copy之后在此基础上修改即可, 而且没有此文件时,redmine的“配置”/“邮件通知”设定tab页面会显示没有邮件设定文件相关信息,需要设定之后,重启redmine.
支持方式
除了smtp方式,redmine所支持的邮件方式如下
项番 | 方式 | 说明 |
---|---|---|
No.1 | smtp | 普通smtp方式 |
No.2 | sendmail | 普通sendmail方式 |
No.3 | async_smtp | 异步smtp方式 |
No.4 | async_sendmail | 异步sendmail方式 |
在yml文件中的设定项目为:delivery_method
具体设定
上述四种方式,至于具体设定,以smtp为例,具体项目说明如下
项番 | 项目 | 说明 |
---|---|---|
No.1 | address | 邮箱服务器地址,比如163为smtp.163.com,139为:smtp.139.com |
No.2 | port | 服务器端口,缺省为25,163和139均为如此,其他邮箱需要自行确认 |
No.3 | domain | 需要指定HELO domain的时候需要设定,一般可设可不设 |
No.4 | user_name | 邮件服务器需要认证时需要,一般必填,此邮箱也成为redmine发信时所使用的邮箱,此处一般使用邮箱名称即可。 |
No.5 | password | 邮箱密码 |
No.6 | authentication | 认证方式,支持plain/login/cram_md5方式。plain:明文密码。login:base64编码。cram_md5:md5方式。 |
No.7 | enable_starttls_auto | 检测STMP服务器是否使用STARTTLS并使用,缺省为true. |
No.8 | openssl_verify_mode | 使用TLS时,OPENSSL方式设定 |
至于详细的设定项目,如果使用smtp,yml文件中的设定项目则为:smtp_settings,如果是异步smtp,则为aysnc_smtp_settings.
关于邮箱的设定基本此两项(delivery_method和具体设定)即可。
设定实例
如下smtp的两种方式用163和139的邮箱方式,均亲测可用。
smtp普通方式
email_delivery:
delivery_method: :smtp
smtp_settings:
address: "smtp.163.com"
port: 25
authentication: :login
domain: 'smtp.163.com'
user_name: '邮箱ID@163.com'
password: '你的密码'
smtp异步方式
email_delivery:
delivery_method: :async_smtp
async_smtp_settings:
address: "smtp.163.com"
port: 25
authentication: :login
domain: 'smtp.163.com'
user_name: '邮箱ID@163.com'
password: '你的密码'
设定生效
configuration.yml文件修改之后,一般要重新启动redmine才能起作用。
连接确认
在设定redmine之前,最好确认一下是否在redmine所在环境之上邮件收发是否能正常动作,自己写个程序也行,也可以使用telnet,以下以163为例进行确认。
连接163的STMP服务器
返回220表示OK
/usr/src/redmine # telnet SMTP.163.com 25
220 163.com Anti-spam GT for Coremail System (163com[20141201])
发送HELO,确认连接状况,返回250确认OK
HELO SMTP.163.com
250 OK
通过这样的确认至少确认了很多低级问题比如防火墙穿透不过去或者干脆根本都连不上网等等方面是否有问题。
邮件测试
redmine的配置->邮件通知页面,设定之后点击“发送测试邮件”即可确认
如果失败又不是异步方式设定,此处会提示具体错误,如果邮件发件人地址如果跟configuration.yml中设定不同也会提示出错。
邮件测试
成功之后,会收到从设置的邮箱发来的如下内容的一封mail.
This is a test email sent by Redmine.
Redmine URL: http://localhost:3000/
________________________________________
You have received this notification because you have either subscribed to it, or are involved in it.
To change your notification preferences, please click here: http://hostname/my/account
注意事项
基本上很多问题都是由如下问题产生:
项番 | 详细信息 |
---|---|
No.1 | 格式问题:yml文件自身格式,空格缩进等要求严格,建议在理解基础上拷贝,因为拷贝时经常造成空格异位等问题。另外引号和特殊字符等等也均有可能造成问题 |
No.2 | 发送邮件侧的是否能够发送,建议自己写个程序验证一下,或则直接使用本文提示的telnet的方式,然后再确认是不是redmine设定的问题。 |
参考文章
http://www.redmine.org/projects/redmine/wiki/EmailConfiguration
http://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-configuration