天天看点

python 脚本发送邮件 & Django 发送邮件 & 谷歌邮箱发送Django 发送邮件:settings:views:python 脚本发送邮件:模块发送:谷歌邮箱发送(开启VPN):

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 = '[email protected]',  # 发送者[当前配置邮箱]
        recipient_list=['[email protected]'],  # 接收者邮件列表
        auth_password=''  # 在QQ邮箱->设置->帐户->“POP3/IMAP......服务” 里得到的在第三方登录QQ邮箱授权码
    )
    return HttpResponse('OK')
           

python 脚本发送邮件:

python 脚本发送邮件 & Django 发送邮件 & 谷歌邮箱发送Django 发送邮件:settings:views:python 脚本发送邮件:模块发送:谷歌邮箱发送(开启VPN):
# -*- 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 = "[email protected]"
GMAIL_PASSWORD = "邮箱密码"
email_subject = "Hello"
recipient = "[email protected]"
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)