zoukankan      html  css  js  c++  java
  • python3利用smtplib发送、抄送邮件并附带附件

    python3利用smtplib发送、抄送邮件并附带附件

    1. 导包

    import smtplib
    from email.mime.text import MIMEText
    from email.mime.multipart import MIMEMultipart
    import logging
    

    2. 定义发送邮件函数

    def send_mail(MAIL_SERVER, MAIL_USERNAME, MAIL_PASSWORD, accept_list, Cc_list, SUBJECT, text, file_name):
    	
    	message = MIMEMultipart()
    	message['From'] = MAIL_USERNAME  # 发件人
    	message['To'] = ";".join(accept_list)  # 收件人,将列表转换为字符串
    	message["Cc"] = ";".join(Cc_list)  # 抄送人,将列表转换为字符串
    	message['Subject'] = SUBJECT  # 邮件主题
    	message.attach(MIMEText(text, 'plain', 'utf-8'))  # 格式化邮件内容,编码为utf-8
    
    	att1 = MIMEText(open(file_name, 'rb').read(), 'base64', 'utf-8')  # 添加附件
    	att1["Content-Type"] = 'application/octet-stream'  # 设置类型
    	att1["Content-Disposition"] = 'attachment; filename="{0}"'.format("test.xlsx")  # 设置邮件用现实的名称
    	message.attach(att1)
    
    	try:
    		mailServer = smtplib.SMTP(MAIL_SERVER, 25)  # 25为端口号(邮件)
    		# 登录邮箱
    		mailServer.login(MAIL_USERNAME, MAIL_PASSWORD)  # 需要的是,邮箱的地址和授权密码
    		# 发送文件
    		mailServer.sendmail(MAIL_USERNAME, accept_list + Cc_list, message.as_string())
    		mailServer.close()    # 关闭连接
    		return True
    	except Exception as e:
    		# logging.debug(e)
    		print(e)
    		return False
    

    3. 调用发送邮件函数

    def main():
    
    	MAIL_SERVER = 'smtp.qq.com'  # smtp服务器
    	MAIL_USERNAME = '*****@qq.com'  # 发件人
    	MAIL_PASSWORD = '**********'  # 发送者授权码
    	accept_list = ['****@163.com', '*****@qq.com']  # 收件人
    	Cc_list = ['*****@qq.com', '*****@qq.com']  # 抄送人
    	SUBJECT = "send mail test"  # 主题
    	text = "test page"  # 内容
    	file_name = "a.xlsx"  # 上传附件名称(当前路径)
    
    	if send_mail(MAIL_SERVER, MAIL_USERNAME, MAIL_PASSWORD, accept_list, Cc_list, SUBJECT, text, file_name):
    		logging.debug("Send mail succed!")
    
    	else:
    		logging.debug("Send mail failed")
    
    
    if __name__ == '__main__':
    	main()
    
  • 相关阅读:
    Git本地操作2
    Blast在windows下的使用过程
    和为T
    出现次数最多的整数
    蓝桥杯 未名湖边的烦恼 java
    蓝桥杯数字三角形 java
    ①①将线性拉伸
    ⑩把线型对象转平面对象
    ⑨矩形
    ⑧建立样条:(样条也能够被拉伸)
  • 原文地址:https://www.cnblogs.com/technicianafei/p/14683064.html
Copyright © 2011-2022 走看看