import smtplib from email.mime.text import MIMEText from email.header import Header msg_from = '***@qq.com' # 發送方郵箱 passwd = '****' # 填入發送方郵箱的受權碼(填入本身的受權碼,至關於郵箱密碼) msg_to = ['****@qq.com','**@163.com','*****@163.com'] # 收件人郵箱 # msg_to = '616564099@qq.com' # 收件人郵箱 subject = "郵件標題" # 主題 content = "郵件內容,我是郵件內容,哈哈哈" # 生成一個MIMEText對象(還有一些其它參數) msg = MIMEText(content) # 放入郵件主題 msg['Subject'] = subject # 也能夠這樣傳參 # msg['Subject'] = Header(subject, 'utf-8') # 放入發件人 msg['From'] = msg_from # 放入收件人 # msg['To'] = '616564099@qq.com' # msg['To'] = '發給你的郵件啊' try: # 經過ssl方式發送,服務器地址,端口 s = smtplib.SMTP_SSL("smtp.qq.com", 465) # 登陸到郵箱 s.login(msg_from, passwd) # 發送郵件:發送方,收件方,要發送的消息 s.sendmail(msg_from, msg_to, msg.as_string()) print('成功') except s.SMTPException as e: print(e) finally: s.quit()
import smtplib from email.mime.text import MIMEText from email.header import Header msg_from = '306334678@qq.com' # 發送方郵箱 passwd = 'ldoetnwqdjqqbjjj' # 填入發送方郵箱的受權碼(填入本身的受權碼,至關於郵箱密碼) msg_to = ['616564099@qq.com'] # 收件人郵箱 # msg_to = '616564099@qq.com' # 收件人郵箱 subject = "郵件標題" # 主題 # *************發送html的郵件********** content = ''' <p>Python 郵件發送測試...</p> <p><a href="http://www.baidu.com">這是一個連接</a></p> ''' # 生成一個MIMEText對象 msg = MIMEText(content) # 放入郵件主題 msg['Subject'] = subject # 也能夠這樣傳參 # msg['Subject'] = Header(subject, 'utf-8') # 放入發件人 msg['From'] = msg_from # 放入收件人 # msg['To'] = '616564099@qq.com' # msg['To'] = '發給你的郵件啊' try: # 經過ssl方式發送 s = smtplib.SMTP_SSL("smtp.qq.com", 465) # 登陸到郵箱 s.login(msg_from, passwd) # 發送郵件:發送方,收件方,要發送的消息 s.sendmail(msg_from, msg_to, msg.as_string()) print('成功') except s.SMTPException as e: print(e) finally: s.quit()
import smtplib from email.mime.text import MIMEText from email.header import Header from email.mime.multipart import MIMEMultipart from email.mime.base import MIMEBase from email.mime.image import MIMEImage from email import encoders msg_from = '306334678@qq.com' # 發送方郵箱 passwd = '***' # 填入發送方郵箱的受權碼(填入本身的受權碼,至關於郵箱密碼) msg_to = ['616564099@qq.com'] # 收件人郵箱 subject = "郵件標題" # 主題 # 建立一個帶附件的實例 msg = MIMEMultipart() # 放入郵件主題 msg['Subject'] = subject # 也能夠這樣傳參 # msg['Subject'] = Header(subject, 'utf-8') # 放入發件人 msg['From'] = msg_from # 郵件正文內容 msg.attach(MIMEText('Python 郵件發送測試……', 'plain', 'utf-8')) # 構造附件1,傳送當前目錄下的 test.txt 文件 att1 = MIMEText(open('test.txt', 'rb').read(), 'base64', 'utf-8') att1["Content-Type"] = 'application/octet-stream' # 這裏的filename能夠任意寫,寫什麼名字,郵件中顯示什麼名字 att1["Content-Disposition"] = 'attachment; filename="test.txt"' msg.attach(att1) # 構造附件2, with open('test.png', 'rb') as f: # 設置附件的MIME和文件名,這裏是png類型: mime = MIMEBase('image', 'png', filename='test.png') # 加上必要的頭信息: mime.add_header('Content-Disposition', 'attachment', filename='test.png') mime.add_header('Content-ID', '<0>') mime.add_header('X-Attachment-Id', '0') # 把附件的內容讀進來: mime.set_payload(f.read()) # 用Base64編碼: encoders.encode_base64(mime) # 添加到MIMEMultipart: msg.attach(mime) # 構造附件3,圖片格式 fp = open('test.png', 'rb') msgImage = MIMEImage(fp.read()) fp.close() # 定義圖片 ID,在 HTML 文本中引用 msgImage.add_header('Content-ID', '<image1>') msg.attach(msgImage) try: # 經過ssl方式發送 s = smtplib.SMTP_SSL("smtp.qq.com", 465) # 登陸到郵箱 s.login(msg_from, passwd) # 發送郵件:發送方,收件方,要發送的消息 s.sendmail(msg_from, msg_to, msg.as_string()) print('成功') except s.SMTPException as e: print(e) finally: s.quit()
# EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.qq.com' # 若是是 163 改爲 smtp.163.com EMAIL_PORT = 465 EMAIL_HOST_USER = '306334678@qq.com' # 賬號 EMAIL_HOST_PASSWORD = '***' # 密碼 DEFAULT_FROM_EMAIL = EMAIL_HOST_USER #這樣收到的郵件,收件人處就會這樣顯示 #DEFAULT_FROM_EMAIL = 'lqz<'306334678@qq.com>' EMAIL_USE_SSL = True #使用ssl #EMAIL_USE_TLS = False # 使用tls #EMAIL_USE_SSL 和 EMAIL_USE_TLS 是互斥的,即只能有一個爲 True
from django.core.mail import send_mail import threading from mybbs import settings t = threading.Thread(target=send_mail, args=("您的文章%s新增了一條評論內容" , 'ddd', settings.EMAIL_HOST_USER, ["616564099@qq.com"]) ) t.start()
from django.core.mail import send_mass_mail message1 = ('第一封郵件標題', '這是郵件內容', 'from@example.com', ['first@example.com', 'other@example.com']) message2 = ('第二封郵件標題', '這是郵件內容', 'from@example.com', ['second@test.com']) ''' fail_silently: (可選)布爾值。爲 False 時, send_mail 會拋出 smtplib.SMTPException 異常。smtplib 文檔列出了全部可能的異常。 這些異常都是 SMTPException 的子類 ''' send_mass_mail((message1, message2), fail_silently=False) ''' send_mail 每次發郵件都會創建一個鏈接,發多封郵件時創建多個鏈接。而 send_mass_mail 是創建單個鏈接發送多封郵件,因此一次性發送多封郵件時 send_mass_mail 要優於 send_mail。 '''
from django.core.mail import EmailMultiAlternatives # subject 主題 content 內容 to_addr 是一個列表,發送給哪些人 msg = EmailMultiAlternatives('郵件標題', '郵件內容', '發送方', ['接收方']) msg.content_subtype = "html" # 添加附件(可選) msg.attach_file('test.txt') # 發送 msg.send()
備註:send_mail 每次發郵件都會創建一個鏈接,發多封郵件時創建多個鏈接。而 send_mass_mail 是創建單個鏈接發送多封郵件,因此一次性發送多封郵件時 send_mass_mail 要優於 send_mail。django
登陸qq郵箱:服務器
開啓smtp服務,生成受權碼app