用python标准库smtplib来发QQ邮件及Django中发送邮件
1.QQ邮箱设置
点击QQ邮箱账号,进入后,开启smtp服务许可:
点击“生产授权码”,在手机上发送相应的短信,得到授权码。【注意授权码之间没有空格】
2.典型代码块
import smtplib from email.mime.text import MIMEText from email.header import Header msg_from='xxxxxxx@qq.com' #发送邮件的邮箱号码 password='xxxxxxx' #授权码,不是邮箱登录密码 msg_to=['xxx@qq.com','xxx@qq.com','xxx@qq.com'] #收件邮箱List message=MIMEText('python邮件发送测试...','plain','utf-8') message['From']=Header('来自JohnYang','utf-8') message['To']=Header('测试','utf-8') message['Subject']=Header('Python SMTP邮件测试','utf-8') client=smtplib.SMTP_SSL('smtp.qq.com',smtplib.SMTP_SSL_PORT) client.login(msg_from,password) client.sendmail(msg_from,msg_to,message.as_string()) #发送
3.Django中发送邮件
Django对smptlib进行了包装,使得发送邮件更为简便。
首先在settings.py中添加如下设置:
EMAIL_HOST='smtp.qq.com' EMAIL_PORT=25 EMAIL_HOST_USER='from@example.com'
EMAIL_HOST_PASSWORD='ixxxxxx'
EMAIL_USE_TLS=True
Django中有关邮件的在django.core.mail模块中。
(1)send_mail
from django.core.mail import send_mail send_mail( 'Subject here', 'Here is the message.', 'from@example.com', ['to@example.com'], fail_silently=False, )
(2)send_mass_mail
datatuple = ( ('Subject', 'Message.', 'from@example.com', ['john@example.com']), ('Subject', 'Message.', 'from@example.com', ['jane@example.com']), ) send_mass_mail(datatuple)
(3)EmailMessage类
from django.core.mail import EmailMessage email = EmailMessage( 'Hello', 'Body goes here', 'from@example.com', ['to1@example.com', 'to2@example.com'], ['bcc@example.com'], reply_to=['another@example.com'], headers={'Message-ID': 'foo'}, ) message.attach_file('/images/weather_map.png') message.send()
#####
愿你一寸一寸地攻城略地,一点一点地焕然一新
#####