python邮件发送哪个好_python发邮件(一)
復習模塊
如果我們要發送郵件,就需要用到smtplib模塊的以下方法:
1、import smtplib ? ? ??#引入smtplib模塊
2、server = smtplib.SMTP()? ? ?#server為變量,通過SMTP指定一個服務器,這樣才能把郵件送到另一個服務器,SMTP為類
3、server.connect(host, port)? #connect指定服務器,host指定連接的郵箱服務器,可以指定服務器的域名,搜索“xx郵箱服務器地址”,就可以找到,port是端口,SMTP默認端口為25,常用:QQ郵箱若有_SSL加密,端口為465
4、server.login(username, password) ? #login是登陸的意思,參數為登陸的郵箱(也為發件的郵箱),和授權碼(郵箱設置SMTP會顯示)
5、server.sendmail(from_addr, to_addr, msg.as_string())? #sendmail為發送郵件,from_addr = username 發件人,to_addr為收件人,msg為發送的內容,? .as_string()是將發送的信息變為字符串類型
6、server.quit() ? ?#quit為退出服務器
郵件內容 要用到email模塊:
email 模塊:也就是用來寫郵件內容的模塊。這個內容可以是純文本、HTML內容、圖片、附件等多種形式。
每種形式對應的導入方式:
from email.mime.text import MIMEText? ?# MIMEText(msg,type,chartset) 三個參數:文本內容,文本類型和文本編碼。
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
el:
import?smtplib
from?email.mime.text?import?MIMEText
#引用模塊smtplib,email
username?=?'49*******@qq.com'
password?=?input('請輸入授權碼')
from_addr?=?username
to_addrs?=?'*********@qq.com'
msg?=?MIMEText('第一波看看成不成功~哈哈哈哈','plain','utf-8')
#定義變量
server?=?smtplib.SMTP()
#如果端口是用SSL加密,server?=?smtplib.SMTP_SSL()。其中server是變量名
server.connect('smtp.qq.com',25)
#如果出現編碼錯誤UnicodeDecodeError,你可以這樣寫:server.connect('smtp.qq.com',?465,'utf-8')
server.login(username,?password)
#登錄郵箱,輸入賬號、授權碼
server.sendmail(from_addr,?to_addrs,?msg.as_string())
#發送郵件,發件人=登錄郵箱,收件人,內容
server.quit()
#退出服務器
報錯及解決:
1.ValueError: server_hostname cannot be an empty string or start with a leading dot.
# 改動這句代碼
server = smtplib.SMTP_SSL()
# 在括號內加入host參數
server = smtplib.SMTP_SSL(smtp_server)
2.smtplib.SMTPException: No suitable authentication method found
解決方案是:在登錄(login)之前調用starttls()方法就可以了。也就是在代碼中加入這樣一行:
server.starttls()
增加郵件頭:
from email.header import Header? #從email包引入Header()方法。Header()是用來構建郵件頭的。
msg['From'] = Header(from_addr)#發件人郵箱地址
msg['To'] = Header(to_addr)#收件人郵箱地址
msg['Subject'] = Header('python test') #主題python test
el:
import?smtplib
from?email.mime.text?import?MIMEText
from?email.header?import?Header
#引用模塊
username?=?'4*********0@qq.com'
password?=?input('請輸入授權碼')
from_addr?=?username
to_addrs?=?'********@qq.com'
text?=?'''哈哈?研究了半天終于會用python發郵件了~開心QVQ
繼續學~越來越感興趣了~
來個經典名言:
好好學,學到了都是你的
溜了溜了~'''
msg?=?MIMEText(text,'plain','utf-8')
#定義變量
msg['From']?=?Header('JinAncan')
msg['To']?=?Header('A')
msg['Subject']?=?Header('小試牛刀')
#郵件頭信息
server?=?smtplib.SMTP()
#如果端口是用SSL加密,server?=?smtplib.SMTP_SSL()。其中server是變量名
server.connect('smtp.qq.com',25)
#如果出現編碼錯誤UnicodeDecodeError,你可以這樣寫:server.connect('smtp.qq.com',?465,'utf-8')
server.login(username,?password)
#登錄郵箱,輸入賬號、授權碼
server.sendmail(from_addr,?to_addrs,?msg.as_string())
#發送郵件,發件人=登錄郵箱,收件人,內容
server.quit()
#退出服務器
總結
以上是生活随笔為你收集整理的python邮件发送哪个好_python发邮件(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vivo Pad Air 平板今日 10
- 下一篇: python逻辑运算符的使用_总结Pyt