電子郵件設定¶
- 目錄
- 電子郵件設定
設定指令¶
本頁面仍在建構中,以下設定指令僅為部分清單。如需詳細資訊,請參閱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 不會等待電子郵件傳送完畢才顯示下一頁。如需詳細資訊,請參閱非同步電子郵件傳遞。某些 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 Haeberli 於 7 個月前 更新 · 57 個版本