ActionMailer 連遠端 SMTP 需要安裝 sendmail 或是 postfix 嗎?


#1

我是想用Sendgrid的SMTP寄信。才把新的專案部署到新買的VPS上,是新裝的Ubuntu。

在sendgrid的教學,只有提到把actionmailer的設定指向sendgrid 的 port 587還有附上帳號跟密碼。

但是碰上了 Errno::ECONNREFUSED: Connection refused - connect(2) for "localhost" port 25。我測過,production上的設定都是正確的。在網路上有人提到可以嘗試安裝像是 postfix的MTA。

在Linux上部署Rails,MTA(如sendmail/postfix)對於想用外部 SMTP 伺服器的人來說是必要的嗎?

這是我的設定:

config.action_mailer.smtp_settings = {
  'user_name' => 'foo',
  'password' => 'bar',
  'domain' => 'foo.com',
  'address' => 'smtp.sendgrid.net',
  'port' => 587,
  'authentication' => :plain,
  'enable_starttls_auto' => true
}

config.action_mailer.default_url_options = { host: 'foo.com' }

我沒有設 delivery_method ,他預設就是 smtp


#2

答案是不需要,ActionMailer能直接連到遠端的 SMTP server

我有問題是因為我的 key 是 string


#3

嗯,不需要,因為直接對遠端而非對 local 做 relay … 所以 local 也不用做 sendmail 之類的鬼設定有的沒的

倒是單純提醒 SPF / DKIM / DMARC / PTR(IP反解) 都要做才行 … 當然這票超囉唆的就是了 … |||