Python--发送邮件
生活随笔
收集整理的這篇文章主要介紹了
Python--发送邮件
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
import smtplib # 發(fā)郵件的
from email.mime.text import MIMEText # 構(gòu)造郵件內(nèi)容的,對象
username = '18033551998@163.com'
password = 'jiqiren123'
msg = MIMEText('你好,快過年了,新年快樂!') # 郵件內(nèi)容
msg['Subject'] = '新年快樂' # 標(biāo)題
msg['From'] = '18033551998@163.com' # 誰發(fā)的
msg['To'] = 'wangsilei@126.com' # 發(fā)給誰
msg['Cc'] = '389688559@qq.com' # 抄送給誰
smtp = smtplib.SMTP('smtp.163.com', port=25) # 和郵箱服務(wù)器建立連接
# smtp = smtplib.SMTP_SSL('smtp.11.com', port=465) # 發(fā)件箱是qq郵箱用這個
smtp.login(username, password) # 登陸郵箱
smtp.sendmail(username, 'wangsilei@126.com', msg.as_string()) # 誰發(fā)的 發(fā)給誰
smtp.quit()
print('發(fā)送成功!')
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
username = '18033551998@163.com'
email_host = 'smtp.163.com'
passwd = 'jiqiren123'
recv = '389688559@qq.com,wangsilei@126.com'
title = '郵件標(biāo)題'
content = '發(fā)送郵件測試'
msg = MIMEMultipart()
file = 'url編碼.py' # 附件的文件名
att = MIMEText(open(file, encoding='utf-8').read()) # 構(gòu)建一個附件的對象
att["Content-Type"] = 'application/octet-stream'
att["Content-Disposition"] = 'attachment; filename="%s"' % file # 這個是在郵件中顯示的附件名
msg.attach(att) # 把剛才創(chuàng)建好的附件,加到正文里面
msg.attach(MIMEText('郵件的內(nèi)容。。。。')) # 郵件正文的內(nèi)容
msg['Subject'] = title # 郵件主題
msg['From'] = username # 發(fā)送者賬號
msg['To'] = recv # 接收者賬號列表
# smtp = smtplib.SMTP_SSL(email_host,port=456)#qq郵箱
smtp = smtplib.SMTP(email_host, port=25) # 其他郵箱
smtp.login(username, passwd)
smtp.sendmail(username, recv, msg.as_string())
smtp.quit()
-------------------------------------------- import smtplib
import os
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import base64
# qq授權(quán)碼
# lfuhiziuplykbgdd
# vavqwyhdvjdzcabh
class SendMail(object):
def __init__(self, username, passwd, recv, title, content,
file=None, ssl=False,
email_host='smtp.qq.com', port=25, ssl_port=465):
# :param username: 用戶名
# :param passwd: 密碼
# :param recv: 收件人,多個要傳list ['a@qq.com','b@qq.com]
# :param title: 郵件標(biāo)題
# :param content: 郵件正文
# :param file: 附件路徑,如果不在當(dāng)前目錄下,要寫絕對路徑,默認(rèn)沒有附件
# :param ssl: 是否安全鏈接,默認(rèn)為普通
# :param email_host: smtp服務(wù)器地址,默認(rèn)為163服務(wù)器
# :param port: 非安全鏈接端口,默認(rèn)為25
# :param ssl_port: 安全鏈接端口,默認(rèn)為465
self.username = username # 用戶名
self.passwd = passwd # 密碼
self.recv = recv # 收件人,多個要傳list ['a@qq.com','b@qq.com]
self.title = title # 郵件標(biāo)題
self.content = content # 郵件正文
self.file = file # 附件路徑,如果不在當(dāng)前目錄下,要寫絕對路徑
self.email_host = email_host # smtp服務(wù)器地址
self.port = port # 普通端口
self.ssl = ssl # 是否安全鏈接
self.ssl_port = ssl_port # 安全鏈接端口
# self.smtp = smtp
def send_mail(self):
msg = MIMEMultipart()
# 發(fā)送內(nèi)容的對象
if self.file: # 處理附件的
file_name = os.path.split(self.file)[-1] # 只取文件名,不取路徑
try:
f = open(self.file, 'rb').read()
except Exception as e:
raise Exception('附件打不開!', e)
else:
att = MIMEText(f, "base64", "utf-8")
att["Content-Type"] = 'application/octet-stream'
# base64.b64encode(file_name.encode()).decode()
new_file_name = '=?utf-8?b?' + base64.b64encode(file_name.encode()).decode() + '?='
# 這里是處理文件名為中文名的,必須這么寫
att["Content-Disposition"] = 'attachment; filename="%s"' % new_file_name
msg.attach(att)
msg.attach(MIMEText(self.content)) # 郵件正文的內(nèi)容
msg['Subject'] = self.title # 郵件主題
msg['From'] = self.username # 發(fā)送者賬號
msg['To'] = ','.join(self.recv) # 接收者賬號列表
if self.ssl:
self.smtp = smtplib.SMTP_SSL(self.email_host, port=self.ssl_port)
else:
self.smtp = smtplib.SMTP(self.email_host, port=self.port)
# 發(fā)送郵件服務(wù)器的對象
self.smtp.login(self.username, self.passwd)
try:
self.smtp.sendmail(self.username, self.recv, msg.as_string())
pass
except Exception as e:
print('出錯了。。', e)
else:
print('發(fā)送成功!')
self.smtp.quit()
if __name__ == '__main__':
m = SendMail(
username='389688559@qq.com',
passwd='lfuhiziuplykbgdd',
recv=['wangsilei@126.com', '511402865@qq.com'],
title='過年好',
content='新年快樂',
file=r'C:\Users\Wang\Desktop\新年快樂.txt',
ssl=True,
)
m.send_mail()
from email.mime.text import MIMEText # 構(gòu)造郵件內(nèi)容的,對象
username = '18033551998@163.com'
password = 'jiqiren123'
msg = MIMEText('你好,快過年了,新年快樂!') # 郵件內(nèi)容
msg['Subject'] = '新年快樂' # 標(biāo)題
msg['From'] = '18033551998@163.com' # 誰發(fā)的
msg['To'] = 'wangsilei@126.com' # 發(fā)給誰
msg['Cc'] = '389688559@qq.com' # 抄送給誰
smtp = smtplib.SMTP('smtp.163.com', port=25) # 和郵箱服務(wù)器建立連接
# smtp = smtplib.SMTP_SSL('smtp.11.com', port=465) # 發(fā)件箱是qq郵箱用這個
smtp.login(username, password) # 登陸郵箱
smtp.sendmail(username, 'wangsilei@126.com', msg.as_string()) # 誰發(fā)的 發(fā)給誰
smtp.quit()
print('發(fā)送成功!')
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
username = '18033551998@163.com'
email_host = 'smtp.163.com'
passwd = 'jiqiren123'
recv = '389688559@qq.com,wangsilei@126.com'
title = '郵件標(biāo)題'
content = '發(fā)送郵件測試'
msg = MIMEMultipart()
file = 'url編碼.py' # 附件的文件名
att = MIMEText(open(file, encoding='utf-8').read()) # 構(gòu)建一個附件的對象
att["Content-Type"] = 'application/octet-stream'
att["Content-Disposition"] = 'attachment; filename="%s"' % file # 這個是在郵件中顯示的附件名
msg.attach(att) # 把剛才創(chuàng)建好的附件,加到正文里面
msg.attach(MIMEText('郵件的內(nèi)容。。。。')) # 郵件正文的內(nèi)容
msg['Subject'] = title # 郵件主題
msg['From'] = username # 發(fā)送者賬號
msg['To'] = recv # 接收者賬號列表
# smtp = smtplib.SMTP_SSL(email_host,port=456)#qq郵箱
smtp = smtplib.SMTP(email_host, port=25) # 其他郵箱
smtp.login(username, passwd)
smtp.sendmail(username, recv, msg.as_string())
smtp.quit()
-------------------------------------------- import smtplib
import os
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import base64
# qq授權(quán)碼
# lfuhiziuplykbgdd
# vavqwyhdvjdzcabh
class SendMail(object):
def __init__(self, username, passwd, recv, title, content,
file=None, ssl=False,
email_host='smtp.qq.com', port=25, ssl_port=465):
# :param username: 用戶名
# :param passwd: 密碼
# :param recv: 收件人,多個要傳list ['a@qq.com','b@qq.com]
# :param title: 郵件標(biāo)題
# :param content: 郵件正文
# :param file: 附件路徑,如果不在當(dāng)前目錄下,要寫絕對路徑,默認(rèn)沒有附件
# :param ssl: 是否安全鏈接,默認(rèn)為普通
# :param email_host: smtp服務(wù)器地址,默認(rèn)為163服務(wù)器
# :param port: 非安全鏈接端口,默認(rèn)為25
# :param ssl_port: 安全鏈接端口,默認(rèn)為465
self.username = username # 用戶名
self.passwd = passwd # 密碼
self.recv = recv # 收件人,多個要傳list ['a@qq.com','b@qq.com]
self.title = title # 郵件標(biāo)題
self.content = content # 郵件正文
self.file = file # 附件路徑,如果不在當(dāng)前目錄下,要寫絕對路徑
self.email_host = email_host # smtp服務(wù)器地址
self.port = port # 普通端口
self.ssl = ssl # 是否安全鏈接
self.ssl_port = ssl_port # 安全鏈接端口
# self.smtp = smtp
def send_mail(self):
msg = MIMEMultipart()
# 發(fā)送內(nèi)容的對象
if self.file: # 處理附件的
file_name = os.path.split(self.file)[-1] # 只取文件名,不取路徑
try:
f = open(self.file, 'rb').read()
except Exception as e:
raise Exception('附件打不開!', e)
else:
att = MIMEText(f, "base64", "utf-8")
att["Content-Type"] = 'application/octet-stream'
# base64.b64encode(file_name.encode()).decode()
new_file_name = '=?utf-8?b?' + base64.b64encode(file_name.encode()).decode() + '?='
# 這里是處理文件名為中文名的,必須這么寫
att["Content-Disposition"] = 'attachment; filename="%s"' % new_file_name
msg.attach(att)
msg.attach(MIMEText(self.content)) # 郵件正文的內(nèi)容
msg['Subject'] = self.title # 郵件主題
msg['From'] = self.username # 發(fā)送者賬號
msg['To'] = ','.join(self.recv) # 接收者賬號列表
if self.ssl:
self.smtp = smtplib.SMTP_SSL(self.email_host, port=self.ssl_port)
else:
self.smtp = smtplib.SMTP(self.email_host, port=self.port)
# 發(fā)送郵件服務(wù)器的對象
self.smtp.login(self.username, self.passwd)
try:
self.smtp.sendmail(self.username, self.recv, msg.as_string())
pass
except Exception as e:
print('出錯了。。', e)
else:
print('發(fā)送成功!')
self.smtp.quit()
if __name__ == '__main__':
m = SendMail(
username='389688559@qq.com',
passwd='lfuhiziuplykbgdd',
recv=['wangsilei@126.com', '511402865@qq.com'],
title='過年好',
content='新年快樂',
file=r'C:\Users\Wang\Desktop\新年快樂.txt',
ssl=True,
)
m.send_mail()
轉(zhuǎn)載于:https://www.cnblogs.com/wangsilei/p/8435973.html
總結(jié)
以上是生活随笔為你收集整理的Python--发送邮件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: React 16 Jest手动模拟(Ma
- 下一篇: ref和out的联系及区别(转)