python发送带有附件的邮件

本文介绍了一个使用Python编写的邮件发送工具,该工具能够通过SMTP服务器发送包含附件的邮件,并提供了基本的功能实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

来新公司实习,要写这么个小工具。


之前没接触过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、付费专栏及课程。

余额充值