Skip to content

Instantly share code, notes, and snippets.

@binderclip
Last active February 16, 2023 14:59
Show Gist options
  • Save binderclip/6d993af3d24edae1cfc4 to your computer and use it in GitHub Desktop.
Save binderclip/6d993af3d24edae1cfc4 to your computer and use it in GitHub Desktop.
Python & Email,附上用 Python 发送 QQ 邮箱邮件的代码
import smtplib
from getpass import getpass
def prompt(prompt):
return input(prompt).strip()
fromaddr = prompt("From: ")
toaddrs = prompt("To: ").split()
subject = prompt("Subject: ")
print("Enter message, end with ^D (Unix) or ^Z (Windows):")
# Add the From: To: and Subject: headers at the start!
msg = ("From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n"
% (fromaddr, ", ".join(toaddrs), subject))
while True:
try:
line = input()
except EOFError:
break
if not line:
break
msg = msg + line
print("Message length is", len(msg))
server = smtplib.SMTP_SSL('smtp.qq.com')
# 如果是其他的服务,只需要更改 host 为对应地址,port 对对应端口即可
# server = smtplib.SMTP_SSL(host='smtp.qq.com', port=465)
server.set_debuglevel(1) # 开启调试,会打印调试信息
print("--- Need Authentication ---")
username = prompt("Username: ")
password = getpass("Password: ")
server.login(username, password)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()
@linbay
Copy link

linbay commented Apr 22, 2016

2016-04-22_10h12_51
2016-04-22_10h14_36

您好,請教一下,看不出來如何使用,是要在script裡先宣告什麼嗎?
謝謝

@Choumingzhao
Copy link

回复 linbay : 看来你是在python 2 的环境下使用本脚本,这个脚本是python 3的, 在两个版本中,2的input会识别输入类型自动转换,而3中input返回的是str类型。此处也不应使用qq好号,都应该使用邮箱账号为好。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment