專案

一般

設定檔

動作

電子郵件設定

設定指令

本頁面仍在建構中,以下設定指令僅為部分清單。如需詳細資訊,請參閱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 不會等待電子郵件傳送完畢才顯示下一頁。如需詳細資訊,請參閱非同步電子郵件傳遞。某些 SMTP 伺服器在開始處理之前會有一段延遲時間,作為反垃圾郵件的功能,在此期間,同步方法會封鎖 Redmine(10 秒可能是預設值,如需更多資訊,請參閱#11376)。

使用此傳遞方式時,smtp 設定是使用 async_smtp_settings 關鍵字指定,而不是 smtp_settings 關鍵字

development:
  delivery_method: :async_smtp
  async_smtp_settings:  # Don't use "smtp_settings" 
    address: ...
    port: ...
    ...

請注意:自 Redmine 4.0 起,異步電子郵件發送功能已被移除,改用 Rails ActiveJob 模組來異步發送電子郵件。如需更多詳細資訊,請參閱 https://redmine.dev.org.tw/projects/redmine/repository/entry/tags/4.0.0/lib/redmine/configuration.rb#L53

configuration.yml 設定範例

簡單登入驗證(預設設定)

# Outgoing email settings

production:
  delivery_method: :smtp
  smtp_settings:
    address: smtp.example.net
    port: 25
    domain: example.net
    authentication: :login
    user_name: redmine@example.net
    password: redmine

development:
  delivery_method: :smtp
  smtp_settings:
    address: 127.0.0.1
    port: 25
    domain: example.net
    authentication: :login
    user_name: redmine@example.net
    password: redmine

GMail、Google Apps

如果您想使用 GMail/Google Apps 和其他需要 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: "your_email@gmail.com" 
    password: "your_password" 
從 G Suite(以前的 Google Apps)發送郵件時,最好使用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: your_email@gmail.com
    password: your_password

Office 365、Exchange Online

以下是 Office 365 使用者(Exchange Online)的範例。寄件者必須擁有帳戶,或者,如果您想從共用信箱發送,則以下帳戶必須獲得 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" 

錯誤:「郵件傳送失敗 - 沒有收件者地址」

當發生此錯誤時,通知不會傳遞到目的地地址。相反,您可能會在寄件者地址收到一封退件訊息,您可以在其中看到已發送郵件的標題,其中包含「發件人:」欄位,但不包含任何「收件人:」欄位。

此錯誤在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: redmine@domain.com
    password: xxxx

更多資訊

Christian Haeberli7 個月前 更新 · 57 個版本