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

歡迎訪問 生活随笔!

生活随笔

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

python

python 发送邮件正文字体设置_python 文字 坐标python smtplib模块发送SSL/TLS安全邮件实例...

發(fā)布時間:2025/3/19 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 发送邮件正文字体设置_python 文字 坐标python smtplib模块发送SSL/TLS安全邮件实例... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

python的smtplib提供了一種很方便的途徑發(fā)送電子郵件。它對smtp協(xié)議進行了簡單的封裝。

smtp協(xié)議的基本命令包括:

HELO 向服務(wù)器標識用戶身份

MAIL 初始化郵件傳輸 mail from:

RCPT 標識單個的郵件接收人;常在MAIL命令后面,可有多個rcpt to:

DATA 在單個或多個RCPT命令后,表示所有的郵件接收人已標識,并初始化數(shù)據(jù)傳輸,以.結(jié)束

VRFY 用于驗證指定的用戶/郵箱是否存在;由于安全方面的原因,服務(wù)器常禁止此命令

EXPN 驗證給定的郵箱列表是否存在,擴充郵箱列表,也常被禁用

HELP 查詢服務(wù)器支持什么命令

NOOP 無操作,服務(wù)器應(yīng)響應(yīng)OK

QUIT 結(jié)束會話

RSET 重置會話,當前傳輸被取消

MAIL FROM 指定發(fā)送者地址

RCPT TO 指明的接收者地址

一般smtp會話有兩種方式,一種是郵件直接投遞,就是說,比如你要發(fā)郵件�zzz@163,那就直接連接163的郵件服務(wù)器,把信投�zzz@163; 另一種是驗證過后的發(fā)信,它的過程是,比如你要發(fā)郵件�zzz@163,你不是直接投到163,而是通過自己在sina的另一個郵箱來發(fā)。這樣就要先連接sina的smtp服務(wù)器,然后認證,之后在把要發(fā)到163的信件投到sina上,sina會幫你把信投遞到163。

第一種方式的命令流程基本是這樣:1. helo

2. mail from

3. rcpt to

4. data

5. quit

但是第一種發(fā)送方式一般有限制的,就是rcpt to指定的這個郵件接收者必須在這個服務(wù)器上存在,否則是不會接收的。 先看看代碼: 代碼如下:

#-*- encoding: gb2312 -*-

import os, sys, string

import smtplib

# 郵件服務(wù)器地址

mailserver = "smtp.163"

# smtp會話過程中的mail from地址

from_addr = "asfgysg@zxsdf"

# smtp會話過程中的rcpt to地址

to_addr = "zhaoweikid@163"

# 信件內(nèi)容

msg = "test mail"

svr = smtplib.SMTP(mailserver)

# 設(shè)置為調(diào)試模式,就是在會話過程中會有輸出信息

svr.set_debuglevel(1)

# helo命令,docmd方法包括了獲取對方服務(wù)器返回信息

svr.docmd("HELO server")

# mail from, 發(fā)送郵件發(fā)送者

svr.docmd("MAIL FROM: " % from_addr)

# rcpt to, 郵件接收者

svr.docmd("RCPT TO: " % to_addr)

# data命令,開始發(fā)送數(shù)據(jù)

svr.docmd("DATA")

# 發(fā)送正文數(shù)據(jù)

svr.send(msg)

# 比如以 . 作為正文發(fā)送結(jié)束的標記,用send發(fā)送的,所以要用getreply獲取返回信息

svr.send(" . ")

svr.getreply()

# 發(fā)送結(jié)束,退出

svr.quit()

注意的是,163是有反垃圾郵件功能的,想上面的這種投遞郵件的方法不一定能通過反垃圾郵件系統(tǒng)的檢測的。所以一般不推薦個人這樣發(fā)送。

第二種有點不一樣:

W WW.002PC .COM從python smtplib模塊發(fā)送SSL/TLS安全郵件實例分析來看,對python smtplib模塊發(fā)送SSL/TLS安全郵件實例的結(jié)果。

1.ehlo

2.auth login

3.mail from

4.rcpt to

5.data

6.quit

相對于第一種來說,多了一個認證過程,就是auth login這個過程。 代碼如下:

#-*- encoding: gb2312 -*-

import os, sys, string

import smtplib

import base64

# 郵件服務(wù)器地址

mailserver = "smtp.163"

# 郵件用戶名

username = "xxxxxx@163"

# 密碼

password = "xxxxxxx"

# smtp會話過程中的mail from地址

from_addr = "xxxxxx@163"

# smtp會話過程中的rcpt to地址

to_addr = "yyyyyy@163"

# 信件內(nèi)容

msg = "my test mail"

svr = smtplib.SMTP(mailserver)

# 設(shè)置為調(diào)試模式,就是在會話過程中會有輸出信息

svr.set_debuglevel(1)

# ehlo命令,docmd方法包括了獲取對方服務(wù)器返回信息

svr.docmd("EHLO server")

# auth login 命令

svr.docmd("AUTH LOGIN")

# 發(fā)送用戶名,是base64編碼過的,用send發(fā)送的,所以要用getreply獲取返回信息

svr.send(base64.encodestring(username))

svr.getreply()

# 發(fā)送密碼

svr.send(base64.encodestring(password))

svr.getreply()

# mail from, 發(fā)送郵件發(fā)送者

svr.docmd("MAIL FROM: " % from_addr)

# rcpt to, 郵件接收者

svr.docmd("RCPT TO: " % to_addr)

# data命令,開始發(fā)送數(shù)據(jù)

svr.docmd("DATA")

# 發(fā)送正文數(shù)據(jù)

svr.send(msg)

# 比如以 . 作為正文發(fā)送結(jié)束的標記

svr.send(" . ")

svr.getreply()

# 發(fā)送結(jié)束,退出

svr.quit()

上面說的是最普通的情況,但是不能忽略的是現(xiàn)在好多企業(yè)郵件是支持安全郵件的,就是通過SSL發(fā)送的郵件,這個怎么發(fā)呢?SMTP對SSL安全郵件的支持有兩種方案,一種老的是專門開啟一個465端口來接收ssl郵件,另一種更新的做法是在標準的25端口的smtp上增加一個starttls的命令來支持。

更多:python 文字 坐標python smtplib模塊發(fā)送SSL/TLS安全郵件實例

https://www.002pc.comhttps://www.002pc.com/python/107.html

你可能感興趣的TLS,python,SSL,smtplib,實例,模塊

No alive nodes found in your cluster

0踩

0 贊

總結(jié)

以上是生活随笔為你收集整理的python 发送邮件正文字体设置_python 文字 坐标python smtplib模块发送SSL/TLS安全邮件实例...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。