项目

常规

个人资料

操作

电子邮件配置

配置指令

此页面正在建设中,以下配置指令仅是一个部分列表。请参阅Action Mailer 配置
以获取详细信息。

身份验证

您的服务提供商期望的身份验证方法类型。

有效设置
  • nil(或省略键)表示无身份验证
  • :plain
  • :login
  • :cram_md5

(注意:如果您将其设置为nil或省略它,则不得包含user_namepassword设置)

投递方法

要使用的邮件传输方法。

有效设置(< Redmine v3.x)
  • :smtp
  • :sendmail
  • :async_smtp
  • :async_sendmail
有效设置(>= Redmine v4.x;参见图 #30068
  • :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次修订