python程序发送email的源码
2021/10/19 14:40:05
本文主要是介绍python程序发送email的源码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
把开发过程经常用的代码段收藏起来,下边代码段是关于python程序发送email的的代码,应该是对码农们有一些好处。
server = 'smtp.gmail.com:587';
imports
from time import sleep;
import smtplib;
from email.mime.application import MIMEApplication
from email.mime.text import MIMEText;
from email.mime.multipart import MIMEMultipart;
takes addresses to, from cc and a subject
def create_msg(to_address,
from_address='',
cc_address='',
bcc_address='',
subject=''):
msg = MIMEMultipart(); msg['Subject'] = subject; msg['To'] = to_address; msg['Cc'] = cc_address; msg['From'] = from_address; return msg;
if mode = 0 sends to and cc
if mode = 1 sends to bcc
def send_email(smtp_address, usr, password, msg, mode):
server = smtplib.SMTP(smtp_address);
server.ehlo();
server.starttls();
server.ehlo();
server.login(username,password);
if (mode == 0 and msg['To'] != ''):
server.sendmail(msg['From'],(msg['To']+msg['Cc']).split(","), msg.as_string());
elif (mode == 1 and msg['Bcc'] != ''):
server.sendmail(msg['From'],msg['Bcc'].split(","),msg.as_string());
elif (mode != 0 and mode != 1):
print 'error in send mail bcc'; print 'email cancled'; exit();
server.quit();
compose email
takes all the details for an email and sends it
address format: list, [0] - to
[1] - cc
[2] - bcc
subject format: string
body format: list of pairs [0] - text
[1] - type:
0 - plain
1 - html
files is list of strings
def compose_email(addresses, subject, body, files):
# addresses to_address = addresses[0]; cc_address = addresses[1]; bcc_address = addresses[2]; # create a message msg = create_msg(to_address, cc_address=cc_address , subject=subject); # add text for text in body: attach_text(msg, text[0], text[1]); # add files if (files != ''): file_list = files.split(','); for afile in file_list: attach_file(msg, afile); # send message send_email(server, username, password, msg, 0); # check for bcc if (bcc_address != ''): msg['Bcc'] = bcc_address; send_email(server, username, password, msg, 1); print 'email sent'
attach text
attaches a plain text or html text to a message
def attach_text(msg, atext, mode):
part = MIMEText(atext, get_mode(mode));
msg.attach(part);
util function to get mode type
def get_mode(mode):
if (mode == 0):
mode = 'plain';
elif (mode == 1):
mode = 'html';
else:
print 'error in text kind'; print 'email cancled'; exit();
return mode;
attach file
takes the message and a file name and attaches the file to the message
def attach_file(msg, afile):
part = MIMEApplication(open(afile, "rb").read());
part.add_header('Content-Disposition', 'attachment', filename=afile);
msg.attach(part);
to be tested...
compose_email(['cpt@thelivingpearl.com','',''],
'test v.5.0',
[['some text goes here...n',0]],
'');
compose_email can take the following arguments:
1. to recipients (separated by a comma)
2. cc recipients (separated by a comma)
3. bcc recipients (separated by a comma)
4. subject
5. a list with message and mode (plain txt or html)
6. files to be attached
这篇关于python程序发送email的源码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享