快捷搜索:  汽车  科技

python发送附带邮件(玩转Python之快速发邮件)

python发送附带邮件(玩转Python之快速发邮件)server.quit() server.sendmail(sender to_addr msg.as_string()) server = smtplib.SMTP() server.connect(host port) server.login(username password)

python发送附带邮件(玩转Python之快速发邮件)(1)

⼀、如何发⼀封简单的邮件

步骤:构造邮件(email)- 发送邮件(smtplib)-发送成功

⼆、smtplib模块(如下)

import smtplib

server = smtplib.SMTP()

server.connect(host port)

server.login(username password)

server.sendmail(sender to_addr msg.as_string())

server.quit()

解析:

(1)第⼀⾏,是引⼊smtplib模块

(2)第⼆⾏,server是smtplib.SMTP()创建出来的对象,SMTP 是smtpli把模块中的⼀个类

(3)SMTP (Simple Mail Transfer Protocol)翻译过来是“简单邮件传输协议”的意思,

SMTP 协议是由源服务器到⽬的地服务器传送邮件的⼀组规则

(4)第三⾏代码,连接(connect)指定的服务器,host是指定连接的邮箱服务器;port 是

端⼝ 默认端⼝号是25

***如何查看⾃⼰的端⼝号?

答:登录邮箱后,在【设置-选项-POP和IMAP】查找相关的端⼝号

(5)若使⽤的是QQ邮箱,SMTP服务器地址是:smtp.qq.com,加密端⼝是465,默认的端

口是25;QQ 邮箱采⽤的加密⽅式是SSL

server = smtplib.SMTP_SSL()

#如果端⼝是⽤SSL加密,请这样写代码。其中server是通过smtplib.SMTP()创建出来的对象

server.connect('smtp.qq.com' 465)

#如果出现编码错误UnicodeDecodeError,你可以这样写:server.connect('smtp.qq.com'

465 'utf-8')

(6)第四⾏代码,login是登录的意思,也就是登录你指定的服务器⽤的,需要输⼊两个参

数:登录邮箱和授权

(7)第五⾏代码sendmail是“发送邮件”的意思,是发送邮件⽤的,sendmail()⽅法需要三个

参数:发件⼈,收件⼈和邮件内容

server.sendmail(from_addr to_addr msg.as_string())

#from_addr:邮件发送地址,就是上⾯的username

#to_addr:邮件收件⼈地址

#msg.as_string():为⼀个字符串类型

(8)最后⼀⾏代码,quit是“退出”的意思,就是退出服务器

⼆、email模块(如下)

from email.mime.text import MIMEText

from email.mime.image import MIMEImage

from email.mime.multipart import MIMEMultipart

(1)MIMEText()⽅法需要输⼊三个参数:⽂本内容,⽂本类型和⽂本编码

MIMEText(msg type chartset)

# msg:⽂本内容,可⾃定义

# type:⽂本类型,默认为plain(纯⽂本)

# chartset:⽂本编码,中⽂为“utf-8”

三、梳理发邮件的代码结构

(1)导⼊模块:

# smtplib ⽤于邮件的发信动作

import smtplib

from email.mime.text import MIMEText

# email ⽤于构建邮件内容

(2)定义变量:

# 发信⽅的信息:发信邮箱,QQ 邮箱授权码

from_addr = input('请输⼊发件⼈的邮箱号码From: ')

password = input('请输⼊发件⼈的邮箱密码Password: ')

# 输⼊SMTP服务器地址:

smtp_server = input('请输⼊邮箱服务器地址SMTP server: ')

# 输⼊收件⼈地址:

to_addr = input('请输⼊收件⼈邮箱地址To: ')

# 邮箱正⽂内容,第⼀个参数为内容,第⼆个参数为格式(plain 为纯⽂本),第三个参数为编码

msg = MIMEText('hi ⼩课让学习更轻松' 'plain' 'utf-8')

(3)使⽤⽅法:

# 开启发信服务,这⾥使⽤的是加密传输

server = smtplib.SMTP_SSL()

server.connect(smtp_server 465)

# 登录发信邮箱

server.login(from_addr password)

# 发送邮件

server.sendmail(from_addr to_addr msg.as_string())

# 关闭服务器

server.quit()

猜您喜欢: