Python Code: 利用QQ邮箱发送邮件,解决SMTPAuthenticationError:530错误

本博客需要利用Python代码给自己的QQ邮箱发送自定义邮件,其进阶版就是要在服务器端把进程的错误信息实时转发给QQ邮箱,实现远程的操控。

一、原始版代码:

# -*- coding: utf-8 -*-
import smtplib
from email.mime.text import MIMEText

SMTPserver = 'smtp.qq.com'
sender = 'sender's QQ [email protected]'
password = "sender's password"

message = 'I send a message by Python. 你好'
msg = MIMEText(message)

msg['Subject'] = 'Test Email by Python'
msg['From'] = sender
msg['To'] = 'receiver's QQ [email protected]'

mailserver = smtplib.SMTP(SMTPserver, 25)
mailserver.login(sender, password)
mailserver.sendmail(sender, [sender], msg.as_string())
mailserver.quit()
print 'send email success'
二、遇到错误:
Python Code: 利用QQ邮箱发送邮件,解决SMTPAuthenticationError:530错误_第1张图片
显示错误SMTPAuthenticationError:530,仔细看后面解释:很明显,是因为QQ邮箱SSL验证的问题,这是出于一种安全协议,所以我们的代码也需要加上SSL这个装备:
解决:
打开QQ邮箱--设置--账户--IMP/SMTP开启--手机验证--获取pwd码
三、进阶版代码:
# -*- coding: utf-8 -*-
import smtplib
from email.mime.text import MIMEText
_user = "sender's QQ [email protected]"
_pwd  = "your pwd password"
_to   = "receiver's QQ [email protected]"

msg = MIMEText("Test")
msg["Subject"] = "My Email From Myself!"
msg["From"]    = _user
msg["To"]      = _to

try:
    s = smtplib.SMTP_SSL("smtp.qq.com", 465)
    s.login(_user, _pwd)
    s.sendmail(_user, _to, msg.as_string())
    s.quit()
    print "Success!"
except smtplib.SMTPException,e:
    print "Falied,%s"%e
四、发送成功:
Python Code: 利用QQ邮箱发送邮件,解决SMTPAuthenticationError:530错误_第2张图片
五、更多提示:
代码里面的:SMTPserver是SMTP邮件服务器SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。
所以:里面的:"smtp.qq.com"还可以改成“smtp.126.com”、"smtp.163.com"等等,根据sender的邮箱归属来定义。

你可能感兴趣的:(Linux,Python)