电子邮件配置¶
- 目录
- 电子邮件配置
配置指令¶
此页面正在建设中,以下配置指令仅是一个部分列表。请参阅Action Mailer 配置
以获取详细信息。
身份验证¶
您的服务提供商期望的身份验证方法类型。
有效设置nil
(或省略键)表示无身份验证:plain
:login
:cram_md5
(注意:如果您将其设置为nil
或省略它,则不得包含user_name
和password
设置)
投递方法¶
要使用的邮件传输方法。
有效设置(< Redmine v3.x):smtp
- :sendmail
:async_smtp
:async_sendmail
:smtp
- :sendmail
异步投递方法¶
:async_smtp
和:async_sendmail
使用异步发送,这意味着Redmine不会等待邮件发送完成就显示下一页。有关更多详细信息,请参阅异步邮件发送。
使用此投递方法时,使用async_smtp_settings
关键字而不是smtp_settings
关键字指定smtp配置。
development:
delivery_method: :async_smtp
async_smtp_settings: # Don't use "smtp_settings"
address: ...
port: ...
...
请注意:由于Redmine 4.0中已移除异步邮件发送,改用Rails ActiveJob模块异步发送邮件。有关更多详细信息,请参阅https://redmine.ruby-lang.org.cn/projects/redmine/repository/entry/tags/4.0.0/lib/redmine/configuration.rb#L53。
示例配置.yml 配置¶
简单登录身份验证(默认设置)¶
# Outgoing email settings
production:
delivery_method: :smtp
smtp_settings:
address: smtp.example.net
port: 25
domain: example.net
authentication: :login
user_name: [email protected]
password: redmine
development:
delivery_method: :smtp
smtp_settings:
address: 127.0.0.1
port: 25
domain: example.net
authentication: :login
user_name: [email protected]
password: redmine
谷歌邮件,谷歌应用¶
如果您想使用谷歌邮件/谷歌应用以及其他需要TLS的SMTP服务器,您需要添加一些与TLS相关的设置
production:
delivery_method: :smtp
smtp_settings:
enable_starttls_auto: true
address: "smtp.gmail.com"
port: 587
domain: "smtp.gmail.com"
authentication: :plain
user_name: "[email protected]"
password: "your_password"
从G Suite(原名谷歌应用)发送时,使用具有较大发送限制的SMTP中继是个不错的选择。更多信息和如何启用SMTP中继的详细指南请在这里查看:https://support.google.com/a/answer/2956491
配置SMTP中继服务时,可以使用以下内容
- 名称:Redmine
- 1. 允许的发件人
- 仅允许域中注册的应用程序用户 - 如果您为Redmine创建了专门的G Suite用户
- 2. 身份验证
- [x] 只接受来自指定IP地址的邮件 - 您Redmine服务器的IP地址
- [x] 要求SMTP身份验证
- 3. 加密
- [x] 要求TLS加密
配置可以非常简单
production:
delivery_method: :smtp
smtp_settings:
address: smtp-relay.gmail.com
port: 587
domain: smtp-relay.gmail.com
authentication: :plain
user_name: [email protected]
password: your_password
Office 365,Exchange Online¶
以下是针对Office 365用户(Exchange在线)的示例。发件人必须有一个账户,或者如果您想从共享邮箱发送,下面的账户必须有权“作为”Redmine电子邮件通知设置中定义的发件人发送。
production:
delivery_method: :smtp
smtp_settings:
enable_starttls_auto: true
address: "smtp.office365.com"
port: 587
domain: "your_domain.com"
authentication: :login
user_name: "email@your_domain.com"
password: "password"
注意:O365 SMTP服务器限制并行连接数为三个。因此,发件人线程的数量也需要限制。有关详细信息,请参阅#31957
无身份验证¶
无身份验证的SMTP服务提供商示例。
production:
delivery_method: :smtp
smtp_settings:
address: smtp.knology.net
port: 25
domain: cybersprocket.com
使用sendmail命令¶
以下是使用/usr/sbin/sendmail
命令的Unix系统示例。
production:
delivery_method: :sendmail
故障排除¶
错误:“主机名与服务器证书不匹配”¶
如果您收到此错误,则可能是SMTP中继的SSL证书验证出现问题。作为临时修复,您可以在适当的“smtp_settings”部分设置此选项
enable_starttls_auto: false
如果您必须启用STARTTLS并只想绕过证书验证,您可以在适当的“smtp_settings”部分添加以下选项
openssl_verify_mode: "NONE"
错误:“邮件失败 - 没有收件人地址”¶
当出现此错误时,通知不会发送到目标地址。相反,您可能会在您的发件人地址上收到拒绝消息,其中可以查看消息的头部,包含“From:”字段但没有包含任何“To:”字段。
此错误在Debian盒子上很常见,这是由于默认配置的exim4,其配置为"-i -t"
。此配置告诉exim4目标地址位于消息的头部。相反,我们需要配置exim4,以便从命令行检索目标地址。
解决方案包括编辑您的config/configuration.yml并确保您定义包含字符串"-i"
的arguments
,如下所示
# default configuration options for all environments
default:
delivery_method: :sendmail
sendmail_settings:
arguments: "-i"
上面的示例使用:sendmail
方法,该方法使用sendmail_settings
。如果您正在使用:smtp
或:async_smtp
方法,请尝试使用smtp_settings
。
由于SSL SMTP服务器连接导致“超时:错误”¶
向configuration.yml中添加ssl选项#17239
default:
# Outgoing emails configuration (see examples above)
email_delivery:
delivery_method: :smtp
smtp_settings:
address: smtp.domain.com
port: 465
ssl: true
enable_starttls_auto: true
domain: domain.com
authentication: :login
user_name: [email protected]
password: xxxx
更多信息¶
由Christian Haeberli更新于7个月前 · 57次修订