2012-04-04 22 views
37

我想使用谷歌企業應用套件配置的電子郵件從Django中發送電子郵件,我在settings.py文件中的配置看起來是這樣的:如何避免谷歌郵件服務器要求我通過瀏覽器登錄?

EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = 'password' 
EMAIL_PORT = 587 
EMAIL_USE_TLS = True 

當我嘗試使用發送電子郵件:

from django.core.mail import send_mail 

send_mail("Happy new year", "We wish you the best for 3001", 
    "[email protected]", ["[email protected]"]) 

我得到以下錯誤:

SMTPAuthenticationError: 
(535, '5.7.1 Please log in with your web browser and then try again. 
Learn more at 
5.7.1 https://support.google.com/mail/bin/answer.py?answer=78754 k2sm758604obl.14') 

由於我工作在遠程服務器上不帶圖形用戶界面,我可以甚至不嘗試從瀏覽器登錄。

+1

我使用的是完全相同的設置(除了用戶/密碼當然),它適用於我。您是使用標準的Gmail地址,還是使用自己的域名的Google應用帳戶?這是我想到的唯一可能導致此問題的事情。並確保您的憑證是正確的。這就是鏈接後面的Google幫助頁面要求你做的事情。 – 2012-04-04 15:35:27

+0

我正在使用具有自己的域名的Google應用帳戶。它實際上在我的家用電腦上嘗試了幾次後(並使​​用瀏覽器登錄)。但是我無法讓它在遠程服務器上工作。 – 2012-04-04 15:51:50

+0

你有沒有關注你的谷歌支持鏈接中發佈的三個谷歌支票? (UnlockCaptcha) – danihp 2012-04-04 16:58:10

回答

5

爲有問題的服務器設置ssh隧道,以便您可以從家用計算機使用服務器的IP登錄到gmail Web客戶端。您可能需要隧道端口80和端口443,也許只是443.通過Web客戶端登錄後,根據SMTPAuthenticationError中列出的知識庫文章,問題應該消失。

這裏有一個如何建立隧道的例子: http://www.noah.org/wiki/SSH_tunnel#simple_port_forwarding_.28SSH_tunneling.29

+0

我設法使用@ DaniloBargen的方法設置隧道(謝謝!)。我實際上可以使用瀏覽器登錄到電子郵件帳戶,但問題仍然存在。真奇怪的是,我嘗試了上述鏈接的建議之一,轉到https://www.google.com/a/yourdomain.com/UnlockCaptcha(當然要更改域名)。但是沒有一個用戶名/密碼組合起作用。我已發送電子郵件給Google Apps支持部門。 – 2012-04-05 15:15:58

+0

我已經將此答案標記爲已接受,因爲雖然我不完全確定我是如何解決問題的,但此答案絕對有用且必要。它只是沒有標記,所以我猜別人會更清楚。也許我應該在自己接受的情況下解釋這種情況來標記自己的回答? – 2012-04-20 02:30:08

7

我從谷歌Apps支持以下回應:

You need to turn on your Outbound relay. To do this:

  1. Log into your account at google.com/a/yourdomain.com
  2. Click the Settings tab and then select Email in the left column.
  3. In the Outbound relay section, select Allow users to send mail through an external SMTP when configuring a "from" address hosted outside your domain.
  4. Click Save changes.

他們還提供了一個幫助鏈接:http://support.google.com/a/bin/answer.py?hl=en&answer=176054

打開出站中繼並使用代理再次登錄到網絡郵件後(感謝@DaniloBargen和@joshcartme),問題已解決。我已閱讀了解釋出站接力的鏈接,但我不確定爲什麼需要它(我不相信我在使用外部SMTP服務器)。

由於我不確定這是什麼解決了這個問題,我不會將回復標記爲接受,直到我得到一些確認。

+0

此問題今天就開始發生,我們在出站中繼中檢查了正確的設置。 – ripper234 2012-06-14 07:54:40

+5

由於您上次更新了答案,我認爲過程發生了變化。我有同樣的錯誤,我所做的是通過瀏覽器登錄到我的帳戶,然後轉到https://accounts.google.com/DisplayUnlockCaptcha(我從[這裏]訪問(https://support.google。 com/mail/answer/14257?hl = en)),然後通過Django發送一封電子郵件。現在客戶端已被識別,我可以繼續通過Django中的該地址發送郵件。 – Bentley4 2013-12-05 15:08:12

-2

在我的情況下,當我嘗試通過網絡登錄到Google帳戶時,它向我詢問驗證碼。我進入驗證碼,然後自動工作。

5

選項#1(這個工作對我來說):

試圖從我的web應用程序發送電子郵件時收到錯誤Please log in with your web browser and then try again. Learn more etc.後,我通過瀏覽器從我的本地計算機登錄到郵件。

我登錄後,頂部有一個黃色通知欄,詢問我是否允許外部應用程序訪問我的郵件。我確認了這一點,Google要求我在接下來的10分鐘內從應用程序登錄帳戶。這將白名單應用程序。

選項#2:

如果您選擇#1doesn't工作,試試這個:http://www.rocketideas.com/2012/05/gmail-error-password-not-accepted-from-server-solved/

+0

選項1爲我工作,謝謝。就我而言,這是一個使用「配置SMTP」發送聯繫郵件的WordPress網站。 Google在通過瀏覽器登錄時標記了「可疑活動」,併爲我提供了將ip /網站列入白名單的機會。感謝發佈! :) – crdunst 2013-06-05 12:14:23

+0

選項#2是最終它爲我工作。 – MAckerman 2016-11-03 14:13:54

1

你已經爲Apps帳戶啓用了雙因素身份驗證?然後,您可能需要爲該應用程序使用特定於應用程序的密碼。

33

只需轉到 https://accounts.google.com/DisplayUnlockCaptcha 然後單擊「繼續」。這將允許從其他服務器訪問。

+0

當試圖從PHP腳本檢索郵件時,這對我有用。 – 2014-03-24 22:53:19

+0

這也適用於JIRA服務器訪問Google帳戶。 – 2015-02-03 10:26:19

+0

哇 - 它允許我發送我的gmail python腳本。謝謝! – 2016-01-21 21:16:17

1

以上所有對我的情況(奇怪)沒有幫助。但是,這個鏈接可以幫助你:

https://security.google.com/settings/security/activity

您可以通過谷歌加

  1. 打開Goog​​le+
  2. 選擇「安全」從頂部
  3. 訪問它在「最近的活動」點擊「查看所有事件」
  4. 您將看到「不尋常活動」列表
  5. 它顯示「新加坡申請/設備登錄嘗試(預防)」,因爲我使用新加坡的AWS
  6. 點擊「更改」>「是的,那就是我!
  7. 再次重試。完成!
29

我一直是這樣搞亂了黃瓜/豚/硒測試中的幾個小時 - 發現了一些愚蠢的事,這將解決這個錯誤爲好,保證

的一切太熟悉了錯誤:

Please log in via your web browser: https://support.google.com/mail/accounts/answer/78754 (Failure) (Net::IMAP::NoResponseError) 

事實證明,有兩個「允許安全性較低的應用程序」切換需要更改以允許來自未知設備/ IMAP的登錄。

一個在這裏https://myaccount.google.com/security?pli=1#connectedapps(在頁面底部)

而一個在這裏https://www.google.com/settings/security/lesssecureapps

這兩個荒涼的切換需要改變,以擺脫這種錯誤消息。

編輯:從用戶Milothicus(https://stackoverflow.com/users/3538026/milothicus):在myaccount.google.com,在 '簽到&安全',選擇 '關聯的應用&網站'。這也可以選擇'允許不太安全的應用程序'。打開這個之後,我的服務器現在可以發送給我一個自動電子郵件。

+0

這是在Ubuntu 16.04上嘗試從Perl腳本發送電子郵件時唯一對我有效的工具。 – 2016-09-02 22:00:11

+0

哇!通常谷歌做的不錯,但是有兩個名字相同的切換......真是一團糟!感謝你的回答。 – mpb 2017-12-25 03:18:00

4

etusm提供兩個位置,打開不夠安全的應用:

One here: https://myaccount.google.com/security?pli=1#connectedapps (bottom of the page)

And one here: https://www.google.com/settings/security/lesssecureapps

都被打開,但我無頭的服務器仍然不能給我發送電子郵件。基於JohnPang的谷歌+的建議,我發現了第三的位置,我必須允許存取安全性較低的應用程序:

在myaccount.google.com

,在「簽到&安全」,選擇「關聯的應用&網站」。這也可以選擇'允許不太安全的應用程序'。打開這個之後,我的服務器現在可以發送給我一個自動電子郵件。

+0

謝謝。我錯過了第三個,但會相應更新。完成度的數 – etusm 2016-05-18 20:15:32