Django 发送邮件:
settings:
# 电子邮件
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' # 固定写法
EMAIL_HOST = 'smtp.qq.com' # 腾讯QQ邮箱 SMTP 服务器地址
EMAIL_PORT = 25 # SMTP服务的端口号
EMAIL_HOST_USER = '' # 发送邮件的QQ邮箱
EMAIL_HOST_PASSWORD = '' # 邮箱的授权码(即QQ密码)
EMAIL_USE_TLS = False # 与SMTP服务器通信时,是否启
# 动TLS链接(安全链接)默认false
views:
from django.core import mail
def email_post(request):
mail.send_mail(
subject = '你好', # 题目
message = '不好', # 消息内容
from_email = '88888@163.com', # 发送者[当前配置邮箱]
recipient_list=['123456@qq.com'], # 接收者邮件列表
auth_password='' # 在QQ邮箱->设置->帐户->“POP3/IMAP......服务” 里得到的在第三方登录QQ邮箱授权码
)
return HttpResponse('OK')
python 脚本发送邮件:
# -*- coding:utf-8 -*-
# author: LIUWENYU
# datetime: 2020/10/14 11:10
# describe:
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
my_sender = '******@qq.com' # 发件人邮箱账号
my_pass = '' # 发件人邮箱密码(即授权码)
my_user = '******@qq.com' # 收件人邮箱账号,我这边发送给自己
def mail():
ret = True
try:
msg = MIMEText('填写邮件内容', 'plain', 'utf-8')
# msg['From'] = formataddr(('发件人昵称', my_sender)) # 括号里的对应发件人邮箱昵称、发件人邮箱账号
# msg['To'] = formataddr(('收件人昵称', my_user)) # 括号里的对应收件人邮箱昵称、收件人邮箱账号
msg['From'] = formataddr(('', my_sender)) # 括号里的对应发件人邮箱昵称、发件人邮箱账号
msg['To'] = formataddr(('', my_user)) # 括号里的对应收件人邮箱昵称、收件人邮箱账号
msg['Subject'] = "发送邮件测试" # 邮件的主题,也可以说是标题
server = smtplib.SMTP_SSL("smtp.qq.com", 465) # 发件人邮箱中的SMTP服务器,端口是25
server.login(my_sender, my_pass) # 括号中对应的是发件人邮箱账号、邮箱密码
server.sendmail(my_sender, [my_user, ], msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
server.quit() # 关闭连接
except Exception as e : # 如果 try 中的语句没有执行,则会执行下面的 ret=False
print(e)
ret = False
return ret
ret = mail()
if ret:
print("邮件发送成功")
else:
print("邮件发送失败")
模块发送:
pip3 install yagmail
import yagmail
#链接邮箱服务器
yag = yagmail.SMTP( user="******@qq.com", password="授权码", host='smtp.qq.com')
# 邮箱正文
contents = ['This is the body, and here is just text http://somedomain/image.png',
'You can find an audio file attached.', '/local/path/song.mp3']
# 发送邮件
yag.send('*****@qq.com', 'subject', contents)
#关闭
yag.close()
谷歌邮箱发送(开启VPN):
import smtplib
GMAIL_USERNAME = "LWYCAP@gmail.com"
GMAIL_PASSWORD = "邮箱密码"
email_subject = "Hello"
recipient = "1091761664@qq.com"
body_of_email = "hi"
# The below code never changes, though obviously those variables need values.
session = smtplib.SMTP('smtp.gmail.com', 587)
session.ehlo()
session.starttls()
session.login(GMAIL_USERNAME, GMAIL_PASSWORD)
headers = "\r\n".join(["from: " + GMAIL_USERNAME,
"subject: " + email_subject,
"to: " + recipient,
"mime-version: 1.0",
"content-type: text/html"])
# body_of_email can be plaintext or html!
content = headers + "\r\n\r\n" + body_of_email
session.sendmail(GMAIL_USERNAME, recipient, content)