天天看點

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)