日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python通过代理发送邮件_Python实现SMTP发送邮件详细教程

發布時間:2025/3/21 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python通过代理发送邮件_Python实现SMTP发送邮件详细教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介

Python發送郵件的教程本人在網站搜索的時候搜索出來了一大堆,但是都是說了一大堆原理然后就推出了實現代碼,我測試用給出的代碼進行發送郵件時都不成功,后面找了很久才找到原因,這都是沒有一個詳細的環境調試導致,所以今天特出一個詳細的教程,一步一步從環境調試到代碼實現整一個教程,希望對還在苦苦尋找解決方法卻遲遲不能得到有效解決的人員一點幫助。

SMTP協議

首先了解SMTP(簡單郵件傳輸協議),郵件傳送代理程序使用SMTP協議來發送電郵到接收者的郵件服務器。SMTP協議只能用來發送郵件,不能用來接收郵件,而大多數的郵件發送服務器都是使用SMTP協議。SMTP協議的默認TCP端口號是25。

環境調試

上面說了是使用SMTP協議發送的郵件,所以需要先查看您的發件人郵箱是否有開啟SMTP協議,如沒有需要開啟,我測試使用的是163.com的郵箱作為發信人郵箱,開啟SMTP協議如下圖所示。

1.先登錄到163.com郵箱中(網易郵箱),如下圖

2.看到郵箱上面的功能欄中有一個“設置”的選項,單擊該選項,然后選擇下拉菜單的“POP3/SMTP/IMAP”

3.如下圖所示,上面紅框的兩個必須勾選上,如沒有勾選,要選擇開啟就可以勾選上了,然后可以看到下面紅框里是:SMTP服務器:smtp.163.com

實現代碼

經過上面的設置后就將環境調試好了,下面就可以實現代碼了,推薦使用pycharm4.5.3編輯器來編寫代碼,下面的代碼在python2.7和python3.4版本測試都可使用。

#coding:utf-8 #強制使用utf-8編碼格式

import smtplib #加載smtplib模塊

from email.mime.text import MIMEText

from email.utils import formataddr

my_sender='發件人郵箱賬號' #發件人郵箱賬號,為了后面易于維護,所以寫成了變量

my_user='收件人郵箱賬號' #收件人郵箱賬號,為了后面易于維護,所以寫成了變量

def mail():

ret=True

try:

msg=MIMEText('填寫郵件內容','plain','utf-8')

msg['From']=formataddr(["發件人郵箱昵稱",my_sender]) #括號里的對應發件人郵箱昵稱、發件人郵箱賬號

msg['To']=formataddr(["收件人郵箱昵稱",my_user]) #括號里的對應收件人郵箱昵稱、收件人郵箱賬號

msg['Subject']="主題" #郵件的主題,也可以說是標題

server=smtplib.SMTP("smtp.xxx.com",25) #發件人郵箱中的SMTP服務器,端口是25

server.login(my_sender,"發件人郵箱密碼") #括號中對應的是發件人郵箱賬號、郵箱密碼

server.sendmail(my_sender,[my_user,],msg.as_string()) #括號中對應的是發件人郵箱賬號、收件人郵箱賬號、發送郵件

server.quit() #這句是關閉連接的意思

except Exception: #如果try中的語句沒有執行,則會執行下面的ret=False

ret=False

return ret

ret=mail()

if ret:

print("ok") #如果發送成功則會返回ok,稍等20秒左右就可以收到郵件

else:

print("filed") #如果發送失敗則會返回filed

如果發送成功則會返回ok,否則為執行不成功,如下圖:

開拓視野

雖然代碼可以用了,但是不免得有些人就愛瞎折騰,玩著玩著就把代碼玩壞了,所以這里附上幾個知識點以解你之疑惑。

1.看到上面代碼第一行的“#coding:utf-8”沒有,相信很多看這代碼的人都不怎么注意這一行,反正這和代碼實現又沒啥關系,保存時選擇utf-8格式就行了嘛;告訴你們哦這一行代碼在python中非常重要,最好寫每一頁都要加上強制字符編碼,因為python2版本它默認識別ASCII編碼,所以當中文字符出現在python中它是不認的,出現的錯誤提示如下圖所示:

錯誤提示示例:File"F:/python/s12/pymail.py",line2

SyntaxError:Non-ASCIIcharacter'\xe5'infileF:/python/s12/pymail.pyonline2,butnoencodingdeclared;seehttp://www.python.org/peps/pep-0263.htmlfordetails

所以當出現上面的編碼錯誤提示時,可以在頁面的第一行加上

#coding:utf-8#強制編碼為utf-8

#coding:GBK#強制編碼為GBK

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

總結

以上是生活随笔為你收集整理的python通过代理发送邮件_Python实现SMTP发送邮件详细教程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。