python采用smtp发送QQ邮件
import smtplib
from email.mime.text import MIMEText
from email.header import Header
#把QQ邮箱的服务器地址赋值给变量mailhost
mailhost = 'smtp.qq.com'
#实例化一个个smtplib模块里的SMTP对象,以便使用SMTP对象的属性和方法
qqmeil = smtplib.SMTP_SSL
#链接服务器,第一个参数是服务器地址,第二个参数是SMTP端口号
qqmeil.connect(mailhost,465)
account = input('请输入你的邮箱:')
password = input('请输入你的密码:')
qqmeil.login(account,password)
reciever = input('请输入收件人的邮箱:')
content = input('请输入正文:')
#实例化一个MIMEText邮件对象,该对象需要写进三个参数,分别是邮件正文,文本格式和编码
message = MIMEText(content,'plain','utf-8')
subject = input('请输入你的邮件主题:')
#在等号的右边是实例化了一个Header邮件头对象,该对象需要写入两个参数,分别是邮件主题和编码,然后赋值给等号左边的变量message['Subject']。
message['Subject'] = Header(subject,'utf-8')
try:
#发送邮件,调用了sendmail()方法,写入三个参数,分别是发件人,收件人,和字符串格式的正文。
qqmeil.sendmail(account,reciever,message.as_string())
print('邮件发送成功')
except:
print('邮件发送失败')
qqmeil.quit()
Traceback (most recent call last):
File "d:/苏学习F盘/python/风变/爬虫精进/发邮件.py", line 10, in <module>
qqmeil.connect(mailhost,465)
File "C:\Program Files\Python37\lib\smtplib.py", line 324, in connect
if not port and (host.find(':') == host.rfind(':')):
AttributeError: 'int' object has no attribute 'find'
尝试过更换端口25,和但是仍然报此错。
成功运行,实现登录邮箱
qqmail = smtplib.SMTP_SSL(emailhost,465),
换上这句就行了