博客刚开通,希望大家多多支持哈~~~~
2016-10-27 18:57
363 查看
这里给大家分享一段自己写的python代码。实现利用smtp发送邮件,。
import argparse
import os
import getpass
import re
import sys
import smtplib
from email.mime.image import MIMEImage #import 子类或者内部类,使用from可以在后文引用时省略父类
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
SMTP_SERVER = 'smtp.qiye.163.com'
SMTP_PORT = 25
def send_email(sender,recipient):
msg = MIMEMultipart()#邮件内容格式从单一改成了多种,这个时候初始化Message变量就不能再用MIMEText了,
#而是使用MIMEMultipart()。之后如果要添加不同的信息的话,就使用attach方法
msg['subject'] = 'python email test'
msg['to'] = recipient
msg['from'] = sender
subject = 'python email test'
message = 'images attached'
#attach image files
files = os.listdir(os.getcwd())
gifsearch = re.compile(".gif",re.IGNORECASE)
files = filter(gifsearch.search,files)
for filename in files:
path = os.path.join(os.getcwd(),filename)
if not os.path.isfile(path):
continue
img = MIMEImage(open(path,'rb').read(),_subtype="gif")#限定了邮件对象类别为gif
img.add_header('content-disposition','attachment',filename=filename)
msg.attach(img)#添加信息,就使用attach方法
part = MIMEText('text',"plain")#限定了邮件对象类别为text
part.set_payload(message)
msg.attach(part)#同上--像邮件中添加对象。
#create smtp session
session = smtplib.SMTP(SMTP_SERVER,SMTP_PORT)#实例一个smtp对象
session.ehlo()#用户认证
session.starttls()#STARTTLS是对纯文本通信协议的扩展。它将纯文本连接升级为加密连接(TLS或SSL), 而不是使用一个单独的加密通信端口。
session.ehlo()
password = getpass.getpass(prompt='enter your google password')
session.login(sender,password)
session.sendmail(sender,recipient,msg.as_string())
print("email sent")
session.quit()
if __name__=='__main__':
parser = argparse.ArgumentParser(description='email sending example')
parser.add_argument('--sender',action="store",dest="sender")
parser.add_argument('--recipient',action="store",dest="recipient")
given_args = parser.parse_args()
send_email(given_args.sender,given_args.recipient)
#SMTP服务需要验证. 您的发信服务器需要密码验证才能进行邮件发送.这个授权码替代上面代码部分的passwd即可.授权码在邮箱的设置里获取
#
#思路:构造一个方法,方法里一般需要实现的功能有:实例化邮件对象,
# 并向其中添加邮件体(各个类下不同格式的邮件体),然后实例化一个smtp对象,用于链接服务器,然后调用send函数发送构建好的邮件信息
import argparse
import os
import getpass
import re
import sys
import smtplib
from email.mime.image import MIMEImage #import 子类或者内部类,使用from可以在后文引用时省略父类
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
SMTP_SERVER = 'smtp.qiye.163.com'
SMTP_PORT = 25
def send_email(sender,recipient):
msg = MIMEMultipart()#邮件内容格式从单一改成了多种,这个时候初始化Message变量就不能再用MIMEText了,
#而是使用MIMEMultipart()。之后如果要添加不同的信息的话,就使用attach方法
msg['subject'] = 'python email test'
msg['to'] = recipient
msg['from'] = sender
subject = 'python email test'
message = 'images attached'
#attach image files
files = os.listdir(os.getcwd())
gifsearch = re.compile(".gif",re.IGNORECASE)
files = filter(gifsearch.search,files)
for filename in files:
path = os.path.join(os.getcwd(),filename)
if not os.path.isfile(path):
continue
img = MIMEImage(open(path,'rb').read(),_subtype="gif")#限定了邮件对象类别为gif
img.add_header('content-disposition','attachment',filename=filename)
msg.attach(img)#添加信息,就使用attach方法
part = MIMEText('text',"plain")#限定了邮件对象类别为text
part.set_payload(message)
msg.attach(part)#同上--像邮件中添加对象。
#create smtp session
session = smtplib.SMTP(SMTP_SERVER,SMTP_PORT)#实例一个smtp对象
session.ehlo()#用户认证
session.starttls()#STARTTLS是对纯文本通信协议的扩展。它将纯文本连接升级为加密连接(TLS或SSL), 而不是使用一个单独的加密通信端口。
session.ehlo()
password = getpass.getpass(prompt='enter your google password')
session.login(sender,password)
session.sendmail(sender,recipient,msg.as_string())
print("email sent")
session.quit()
if __name__=='__main__':
parser = argparse.ArgumentParser(description='email sending example')
parser.add_argument('--sender',action="store",dest="sender")
parser.add_argument('--recipient',action="store",dest="recipient")
given_args = parser.parse_args()
send_email(given_args.sender,given_args.recipient)
#SMTP服务需要验证. 您的发信服务器需要密码验证才能进行邮件发送.这个授权码替代上面代码部分的passwd即可.授权码在邮箱的设置里获取
#
#思路:构造一个方法,方法里一般需要实现的功能有:实例化邮件对象,
# 并向其中添加邮件体(各个类下不同格式的邮件体),然后实例化一个smtp对象,用于链接服务器,然后调用send函数发送构建好的邮件信息
相关文章推荐
- 今天系第一天开通技术性的博客,请大家多多支持
- 首次开通csdn博客,希望大家支持哦
- 第一次写博客有点小激动,希望大家多多支持哈
- 我的小博客开通啦,希望各位多多支持哦
- PopupWindow(第一篇CSDN博客,希望能坚持写下去,也希望大家多多支持)
- 今天刚刚开通博客,希望大家多多关照
- 大家好,我的博客都转移到了http://www.pythonscientists.com/上面,希望大家能都多多支持
- 刚刚开通,希望大家多多支持
- 超炫!打造属于自己的Metro风格web网站(喜欢的童鞋顶一顶啊,博客刚开通,大家多多支持~~)
- 【CSDN2012年度博客之星】大家多多支持下哦,喜欢本博客的朋友,希望能投下您的一票,多多支持~
- 【CSDN2012年度博客之星】大家多多支持下哦,喜欢本博客的朋友,希望能投下您的一票,多多支持~
- 开通了博客 希望大家支持
- 我开通了博客希望大家多多关注!
- 刚开通博客,希望和大家多多交流啊,谢谢
- 终于决定开博客,希望和大家多多交流,互勉共进
- 2013年度【博客之星评选活动】希望大家支持,投我一票
- 今天第一次写博客,希望各位多多支持!!!!!!
- 开通CSDN博客了,希望大家一起交流
- 开通了博客,希望与大家多交流交流
- 我也写写博客希望多多支持~