2013-03-01 88 views
4

我試圖設置discourse,這是一個rails3 web應用程序,但在使用gmail smtp服務器配置smtp時遇到一些問題。不能發送郵件與gmail stmp服務器(在話語中)

我昨天註冊了一個新的Gmail賬戶,我可以登錄瀏覽器和電子郵件客戶端軟件。

然後我配置話語,文件config/environments/production.rb中:

nohup bundle exec sidekiq > log/sidekiq.log 2>&1 & 

然後,在生產模式啓動話語:

config.action_mailer.delivery_method = :smtp 
config.action_mailer.smtp_settings = { 
    :address => "smtp.gmail.com", 
    :port  => "587", 
    :user_name => "[email protected]", 
    :password => "12345678", 
    :authentication => :plain, 
    :domain => "shuzhu.org", 
    :enable_starttls_auto => true 
} 

開始其用於在後臺發送郵件的sidekiq

rails server -e production -d 

但它不起作用。我可以在sidekiq.log看到一些錯誤:

2013-03-01T03:06:02Z 30687 TID-qib28警告:{ 「重試」=>真正的 「隊列」=> 「默認」, 「階級」= >「Jobs :: UserEmail」,「args」=> [{「type」=>「signup」,「user_id」=> 42,「email_token」=>「b40a21ece2b14586e346abfd96685975」,「current_site_id」=>「default」}] ,「jid」=>「558bb6bd5aa36cfc8d3d1e91」,「error_message」=>「連接被拒絕 - 連接(2)」,「error_class」=>「Errno :: ECONNREFUSED」,「failed_at」=> 2013-03-01 03:06 :02 UTC,「retry_count」=> 0} 2013-03-01T03:06:02Z 30687 TID-qib28 WARN:連接被拒絕 - connect(2) 2013-03-01T03:06:02Z 30687 TID-qib28 WARN: /home/discourse/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/net/smtp.rb:540:in initialize' /home/discourse/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/net/smtp.rb:540:in open' /home/discourse/.rvm/rubies/紅寶石1.9.3-P385/lib中/紅寶石/ 1.9.1 /網/ smtp.rb:540:在`TCP_SOCKET」

我已經嘗試了各種SMTP設置,但他們沒有工作。


UPDATE

每@羅勒的回答,我只是想:

config.action_mailer.delivery_method = :smtp 
config.action_mailer.smtp_settings = { 
    :address => "smtp.gmail.com", 
    :port  => 587, 
    :user_name => "smtp4shuzu", 
    :password => "12345678", 
    :authentication => "plain", 
    :enable_starttls_auto => true 
} 

但它也有同樣的錯誤。域名shuzu.org是我網站的域名,我想我應該把它傳遞給smtp。現在我刪除它,但仍然無法正常工作。

+0

嘗試添加:域名=>「gmail.com」,然後重新啓動服務器 – bsiddiqui 2013-03-01 14:14:00

回答

5

最後,我發現(愚蠢)的原因。

我應該在生產模式下啓動sidekiq

nohup bundle exec sidekiq -e production > log/sidekiq.log 2>&1 & 
2

試着在端口去掉引號

:port  => 587, 

另外,我不明白爲什麼你的電子郵件地址是@gmail但您的域名是@shuhzu ... SMTP設置應顯示域的郵件帳戶。如果您有自定義Gmail,即[email protected],那麼域將是custom.com。這裏是什麼您的域名SMTP設置應該是一個例子,如果你有一個自定義的電子郵件地址:

{ 
    :address => "smtp.gmail.com", 
    :port => 587 , 
    :domain => "custom.com", 
    :user_name => "[email protected]", 
    :password => "some_password", 
    :authentication => "plain", 
    :enable_starttls_auto => true 
} 
+0

感謝,並看到我更新的問題。 – Freewind 2013-03-01 06:24:15

0

在我的安裝,這是那些預先製作的圖片一樣的東西(Bitnami)中的一個,我剛剛運行此:

/opt/discourse-0.9.5-0/ctlscript.sh start discourse_sidekiq 

任何人都知道我可以如何自動化,以便它在啓動時發生?

0

我剛剛成立的碼頭工人,容器中的新的話語例如在網站服務器上我自己的Ubuntu的物理和編輯app.yml包含:

DISCOURSE_SMTP_ADDRESS: 'smtp.gmail.com' 
DISCOURSE_SMTP_AUTHENTICATION: 'plain' 
DISCOURSE_SMTP_PORT: 587 
DISCOURSE_SMTP_USER_NAME: '[email protected]' 
DISCOURSE_SMTP_PASSWORD: 'myPa$$word' 
DISCOURSE_SMTP_ENABLE_START_TLS: true 

和它的工作。一半的戰鬥知道在哪裏放置單引號('),哪裏不是。

另一種方式是提供給我也 - 我的ISP提供的SMTP中繼爲它的靜態IP客戶,所以我在app.yam用這個:

DISCOURSE_SMTP_ADDRESS: mail.myisp.tld 
DISCOURSE_SMTP_AUTHENTICATION: none 
DISCOURSE_SMTP_PORT: 25 

,它也爲我工作。

相關問題