11 高级配置11.1 版本库配置
11.2 发送邮件配置首先将 config/email.yml.example 重命名为 config/email.yml 然后配置发送邮件需要的参数: production: delivery_method: :smtp smtp_settings: address: mail.foo.bar port: 25 domain: foo.bar # authentication: :login # user_name: xxx # password: xxx 注意: 用#注销掉的那三行信息,是邮件服务器身份验证信息。但是如果你的用户已经使用了域验证,就不需要那三行信息。 访问redmine,以管理员的身份登录系统,点击"管理"—->""配置"—->"邮件通知",然后点击右下角的"发送测试邮件",就可以测试你的邮件服务配置是否成功了。 Note 当delivery_method设置为:smtp时, 它的处理流程是这样的: 在触发邮件发生的事件发生后, 首先发送邮件, 直到邮件发送完毕, 页面才跳转。 这就是说在发送邮件的过程中, 页面一直处于等待状态。 那么有没有一种异步发送邮件机制呢? 在Redmien 0.9 之后, 可通过将delivery_method设置为: async_smtp, 这时发送邮件和页面跳转属于不同的线程, 当触发邮件的事件发生后, 发送邮件将会通过消息队列在后台执行, 而页面继续向下执行, 不用等到邮件发送完毕。 11.3 接收邮件从Redmien-0.8.0 开始, 通过配置, 你可以以发送邮件的方式创建或者评论问题(issue)。 11.3.1 方案你可以通过以下几种方式配置Redmine接收邮件的功能:
11.3.2 各种方案的详细说明11.3.2.1 从邮件服务器转发邮件用一个独立的脚本转发邮件服务器发来的邮件。这个脚本从标准输入读取原始邮件并通过HTTP请求转发给Redmine。 该脚本在redmine目录下: extra/mail_handler/rdm-mailhandler.rb
11.3.2.2 从IMAP服务器读取邮件redmine提供了一个rake任务(redmine:email:receive_imap)负责从IMAP服务器读取邮件。 当cron 运行该rake命令时你需要使用选项 -f /path/to/redmine/appdir/Rakefile, 因为不这样的话会出现找不到rakefile的异常。 下面是一个定期每30分钟读取一次邮件的cron文件: */30 * * * * redmineuser rake -f /path/to/redmine/appdir/Rakefile redmine:email:receive_imap RAILS_ENV="production" host=imap.foo.bar username=redmine@somenet.foo password=xxx 如果你的设置正常工作,但经常收到cron daemon发送的邮件,你可以在rake命令后添加 --silent选项禁止执行命令的输出信息。下面是禁止每次执行cron命令时发送邮件的示例: */30 * * * * redmineuser rake -f /path/to/redmine/appdir/Rakefile --silent redmine:email:receive_imap RAILS_ENV="production" host=imap.foo.bar username=redmine@somenet.foo password=xxx 说明: 在 cron 文件中,这个命令必须位于一行上 如果用Windows作为服务器, pycron可以用于调度读取邮件的任务。 同时需要你修改防火墙设置, 打开同通过TCP链接IMAP的143端口。 可用的IMAP选项: host=HOST IMAP服务主机(*默认值: 127.0.0.1*) port=PORT IMAP服务端口(*默认值: 143*) ssl=SSL 是否使用SSL?(*默认值: false*) username=USERNAME IMAP账号 password=PASSWORD IMAP密码 folder=FOLDER 将要读取的IMAP文件夹(*默认值: INBOX*) move_on_success=MAILBOX 将已成功读取的邮件移动到MAILBOX中, 而不是删除掉 move_on_failure=MAILBOX 将Redmine忽略的邮件移动到MAILBOX中 问题(issue)属性可控选项: project=PROJECT 项目标识符 tracker=TRACKER 跟踪标签类型 category=CATEGORY 问题类别名称 priority=PRIORITY 优先级名称 allow_override=ATTRS 允许在邮件内容里覆盖先前已指定的属性,多个属性之间用逗号隔开 rake命令的一个例子: # 没有指定项目, 这时邮件内容里必须包含"Project"关键字 rake redmine:email:receive_imap RAILS_ENV="production" \ host=imap.foo.bar username=redmine@somenet.foo password=xxx # 指定默认的项目和跟踪标签类型, 同时允许在邮件里覆盖tracker和priority属性的值 # both tracker and priority attributes: rake redmine:email:receive_imap RAILS_ENV="production" \ host=imap.foo.bar username=redmine@somenet.foo password=xxx ssl=1 \ project=foo \ tracker=错误 \ allow_override=tracker,priority # 将成功处理的邮件转移到"read"mailbox中,失败的则转移到"failed"mailbox中 rake redmine:email:receive_imap RAILS_ENV="production" \ host=imap.foo.bar username=redmine@somenet.foo password=xxx \ move_on_success=read move_on_failure=failed 忽略的邮件(包括未知用户、未知项目以及来自redmine禁用帐户的邮件)被标记为'已读',而不是从IMAP服务器中删除。 选项 allow_override 不仅仅覆盖rake的默认值, 而且可以覆盖邮件里的所有属性。 例如,你要覆盖tracker, 你可以添加参数: allow_override=tracker 11.3.2.3 从POP3服务器读取邮件仅在trunk和1.0以后的版本可用 redmine提供的rake任务(redmine:email:receive_pop3)可以用于从POP3读取邮件 POP3可用的选项: host=HOST POP3服务主机(*默认值: 127.0.0.1*) port=PORT POP3服务端口(*默认值: 110*) username=USERNAME POP3账号 password=PASSWORD POP3密码 apop=1 是否使用APOP认证(_默认值: false_) delete_unprocessed=1 从服务器上删除不能成功处理的消息(*默认情况是继续保存在服务器上*) 关于问题属性的可控选项可以参考上面IMAP章节 11.3.2.4 从标准输入读取邮件redmine提供的rake任务(redmine:email:receive)用于从标准输入读取单个的原始邮件 问题属性可控的选项: project=PROJECT 项目标识符 tracker=TRACKER 跟踪标签类型 category=CATEGORY 问题类别名称 priority=PRIORITY 优先级名称 allow_override=ATTRS 允许在邮件内容里覆盖先前已指定的属性,多个属性之间用逗号隔开 示例: # 没有指定项目,这时邮件里必须包含“Project”关键 rake redmine:email:read RAILS_ENV="production" < raw_email # 指定默认的项目和跟踪标签类型,并且允许在邮件里覆盖tracker和priority选项 # both tracker and priority attributes: rake redmine:email:read RAILS_ENV="production" \ project=foo \ tracker=错误 \ allow_override=tracker,priority < raw_email 选项 allow_override 不仅仅覆盖rake的默认值, 而且可以覆盖邮件里的所有属性。 例如,你要覆盖tracker, 你可以添加参数: allow_override=tracker。 11.3.3 开启匿名用户通过邮件提交问题为了开启该选项,需要添加额外参数: unknown_user=ACTION 当收到未知用户邮件时,应该采用哪种ACTION。以下是ACTION可用的值: ignore: 邮件将被忽略(默认值) accept: 作为匿名用户接收 create: 自动为该用户创建一个账号 no_permission_check=1 当收到邮件时禁用权限检查功能 11.3.4 工作原理收到邮件后, Redmine从发件人地址中查找对应的账号。 未知用户和已锁定的用户将被忽略。 如果邮件主题包含像这样的内容" Re:[xxxxxx #123]", 那么该邮件将被作为问题(issue)#123的回复处理。 否则将会以邮件主题为问题的标题,新建一个问题(issue)
11.3.5 例子演示以从IMAP服务器读取邮件为例 添加一个Redmine从IMAP服务器读取邮件的corn任务 wangsheng@pc01:/etc/cron.d$ cat receive_imap # m h dom mon dow user command */10 * * * * root rake -f /opt/redmine/web/Rakefile redmine:email:receive_imap RAILS_ENV="production" host=imap.foo.bar username=xxx@foo.bar password=xxxxxx allow_override=tracker 说明:
好了, 下面发送一个测试邮件: 收件人: rake里的username值 邮件标题: # 这将是新建问题的标题 这是通过邮件提交的问题 邮件内容: # 由于在rake命令里没有指定默认项目,所以这里必须指定项目 Project: foo Tracker: 支持 下面可以写一些关于问题的描述 说明: 该邮件将会创建一个"支持"类型的问题(issue) 如果10分钟内,你访问Redmine, 点击问题选项卡, 看到了这个问题, 那么证明已经成功配置。 11.4 发送提醒邮件Redmine提供了一个rake任务, 它可以发送那些未来几天之内需要完成的问题的提醒邮件。 可用选项:
下面是一个发送未来7天之内需要解决的问题的提醒邮件示例, 问题的指派人将收到这封邮件: rake redmine:send_reminders days=7 RAILS_ENV="production" 提醒邮件截图. 11.5 LDAP 认证Redmine一直以来都支持一个或者多个LDAP认证源。 以管理员身份登录系统, 点击 管理 -> 配置 -> 认证 -> LDAP 认证, 即可进入LDAP认证页面。
新建LDAP截图 11.6 配置单点登录前提
单点登录配置步骤:
11.7 从LDAP同步账号前提: 已经配置好LDAP 参见 LDAP认证 操作步骤:
11.8 Subversion 基于路径授权配置过程:
Note 如果你用的是http协议,而且svn不允许匿名访问,那么为了让所有用户都能有效地看到自己应该看到的版本库信息, 你需要创建一个对整个版本库读权限的账号, 输入到登录名和密码部分。 因为我们的Subverison权限检查组件是在Redmine原来的基础上, 对输出的信息再次进行过滤。 所以如果你在这里输入的账号权限太低, 还是会出现一些高权限的用户无法看到他们应该看到的内容的现象。 |
|
来自: everydayOK > 《redmine》