鱼C论坛

 找回密码
 立即注册
查看: 7029|回复: 2

python3 通过163邮箱发邮件,附件都变成了tcmime.xxx.bin了,求解决

[复制链接]
发表于 2016-9-26 12:10:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
代码如下,网上说好像是编码问题,但还是不知道怎么解决,求大神指导:


# coding: utf-8
#  导入 smtplib 和 MIMEText
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.multipart import MIMEBase
from email import encoders

# 定义发送列表
mailto_list = ['********@qq.com']
# 设置服务器名称、用户名、密码以及邮件后缀
mail_host = "smtp.163.com"
mail_user = "******@163.com"  # 发件邮箱
mail_pass = "******"  # smtp密码
mail_postfix = "163.com"


# 发送邮件函数
def send_mail(to_list, sub, context):
    me = mail_user + "<" + mail_user + "@" + mail_postfix + ">"
    msg = MIMEMultipart(context)
    # msg = MIMEText(context)
    msg['Subject'] = sub
    msg['From'] = me
    msg['To'] = ",".join(to_list)

    # 附件
    filename = '/Users/******/Desktop/111.txt'
    att = MIMEText(open(filename, 'rb').read(), 'base64', 'utf-8')
    att["Content-Type"] = 'application/octet-stream'
    att["Content-Disposition"] = 'attachment; filename="111.txt"'
    encoders.encode_base64(att)
    msg.attach(att)

    try:
        send_smtp = smtplib.SMTP()
        send_smtp.connect(mail_host)
        send_smtp.login(mail_user, mail_pass)
        send_smtp.sendmail(me, to_list, msg.as_string())
        send_smtp.close()
        return True
    except Exception as e:
        print(str(e))
        return False


if __name__ == '__main__':
    if send_mail(mailto_list, "呵呵哒", "哈哈"):
        print("发送成功")
    else:
        print("发送失败")

附件

附件
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-9-29 13:52:13 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-15 17:21:29 | 显示全部楼层
大佬我也碰到了类似的问题,现在有思路了吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-6 15:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表