python 发送带有附件的邮件

恩恩。。奇怪,刚才是用了另外一个账号发吗。。不管了反正都是新的。

 

来新公司实习,需要一个发邮件的小工具来给自己用。

 

之前没接触过python,百度结合领导给的参考代码总算写出来了。。

 

之前没写过博客,这次也就当做个笔记吧。。

 

import smtplib
import email.utils
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
from email.MIMEBase import MIMEBase
from email import Encoders


import random
import os
import getpass
import time
# Prompt the user for connection info
def sendmail(to_email = '123@123.cn',content='<br/>Test message from PyMOTW.<br/>',subject='Test from PyMOTW'):
    #raw_input('Recipient: ')
    servername = 'smtp.XXXXX.com'#raw_input('Mail server name: ')
    username = '123@123.cn' #raw_input('Mail username: ')
    password = '123' #getpass.getpass("%s's password: " % username)
    # 添加附件,这个附件的名称是例如Show-2000-01-01.txt的
    date = time.strftime('%Y-%m-%d',time.localtime(time.time()))
    file = 'Show-'+date+'.txt'
    msg = MIMEMultipart()
    part = MIMEBase('application', "octet-stream")
    part.set_payload( open(file,"rb").read() )
    Encoders.encode_base64(part)
    part.add_header('Content-Disposition', 'attachment; filename = %s'%file)
    msg.attach(part)
    msg.set_unixfrom('name')
    msg['To'] = email.utils.formataddr(('Recipient', to_email)) 
    #print  msg['To'],type(msg['To'])
    #input()
    msg['From'] = email.utils.formataddr(('name','123@123.cn'))
    if not isinstance(subject,unicode):
        subject = unicode(subject)
    msg['Subject'] = subject
    server = smtplib.SMTP(servername,"25") 
    #print msg.as_string()
    #input() 
    try:
        server.set_debuglevel(True)
        # identify ourselves, prompting server for supported features
        server.ehlo()
        # If we can encrypt this session, do it if server.has_extn('STARTTLS'):
        server.starttls()
        server.ehlo() # reidentify ourselves over TLS connection
        server.login(username, password)


        server.sendmail('123@123.cn', to_email.split(','),msg.as_string())
   


    except Exception as e:
        print e
    finally: 
        server.quit()


if __name__=='__main__':
    to=('123@123.cn')
    sendmail(to_email = '123@123.cn',content='test', subject='title')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值