簡體   English   中英

使用gmail通過gmail發送電子郵件

[英]Sending email through gmail with Python

因此,我已經嘗試了至少5-10個在線示例來發送電子郵件,但是我仍然遇到相同的錯誤。

Traceback (most recent call last):
  File "C:/Users/alxu/Project/LogFilter.py", line 88, in ?
    smtpserver = smtplib.SMTP("smtp.gmail.com",587)
  File "C:\Python24\lib\smtplib.py", line 244, in __init__
    (code, msg) = self.connect(host, port)
  File "C:\Python24\lib\smtplib.py", line 292, in connect
    for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM):
socket.gaierror: (11004, 'getaddrinfo failed')

我使用代碼的最后一個示例是這樣的...

import smtplib

to = 'mkyong2002@yahoo.com'
gmail_user = 'mkyong2002@gmail.com'
gmail_pwd = 'yourpassword'
smtpserver = smtplib.SMTP("smtp.gmail.com",587)
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.ehlo
smtpserver.login(gmail_user, gmail_pwd)
header = 'To:' + to + '\n' + 'From: ' + gmail_user + '\n' + 'Subject:testing \n'
print header
msg = header + '\n this is test msg from mkyong.com \n\n'
smtpserver.sendmail(gmail_user, to, msg)
print 'done!'
smtpserver.close()

我正在使用Python 2.4.3。

編輯:邁克菲(McAfee)具有主機入侵防護功能,因此我嘗試執行此操作的所有時間都將其阻止。

您的最后一個示例代碼應該可以工作。 您需要做的一件事是通過轉到以下鏈接來確保允許訪問不太安全的應用程序。

用於安全應用程序的Google設置

原因是Google將此類自動電子郵件腳本標記為安全性較低。 您還應該意識到這些風險。 如果您不需要此設置,請確保將其更改回去。

由於您位於公司代理的后面,因此您無法直接連接到任何外部服務器,因此需要通過代理進行連接。 在這種情況下,您嘗試連接到使用端口25或587的SMTP服務器。我假設您位於不阻止SMTP端口的HTTP代理后面。 如果您的公司代理阻止了這些端口,那么您將無法執行任何連接服務器的操作。

smtplib模塊不包含通過代理連接到SMTP服務器的功能。 作為一種解決方法,我編寫了自定義類ProxySMTP ,並將其與如何使用的說明一起發布在此處

請讓我知道這對你有沒有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM