吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1697|回复: 9
收起左侧

[已解决] 【破案了】python发邮件问题,求助!为什么总被退回?

[复制链接]
We. 发表于 2020-11-10 10:51
本帖最后由 We. 于 2020-11-10 15:34 编辑

破案了!
根据6楼老哥@yyaocs的温馨提示找到问题出在哪里了。
[Python] 纯文本查看 复制代码
message['To'] = Header(to_receiver)
message['Cc'] = Header(cc_receiver)

把收件人和抄送人用Header方法封装一下就不会被挡了!
真是开心。
再补充一下:
如果你想抄送很多人,上面那个解决方案还是不行!以下是解决代码:
[Python] 纯文本查看 复制代码
message['To'] = Header(';'.join(to_receiver), 'utf-8')
message['Cc'] = Header(';'.join(cc_receiver), 'utf-8')



image.png
完美解决!

=======================如图
image.png
代码跑完了没有异常也没有报错。
发送的邮箱部分成功,163的邮箱成功了,inspur和qq的没有。
主要是想发送带附件压缩包的邮件(普通邮件可以成功),这不报错就蛋疼了。
请各位指正!
[Python] 纯文本查看 复制代码
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
from email.header import Header

email_host = 'smtp.163.com'
email_user = 'xxx'
email_pass = 'xxx'

sender = 'xxx'
to_receiver = ['xxx@qq.com'] # 收件人
cc_receiver = ['xxx@163.com','xxx@inspur.com'] # 抄送
receivers = to_receiver + cc_receiver

content = 'python自动发送的带压缩包的电子邮件。'
title = 'python发送邮件测试'


def sendEmail():
    message = MIMEMultipart()
    message['From'] = sender
    message['To'] = ';'.join(to_receiver)
    message['Cc'] = ';'.join(cc_receiver)
    message['Subject'] = Header(title)
    message.attach(MIMEText(content, 'plain', 'utf-8'))
    with open('附件.rar', 'rb') as f:
        mine = MIMEBase('rar', 'rar', filename='附件.rar')
        mine.add_header('Content-Disposition', 'attachment', filename=('utf-8', '', '附件.rar'))
        mine.add_header('Content-ID', '<0>')
        mine.add_header('X-Attachment-Id', '0')
        mine.set_payload(f.read())
        encoders.encode_base64(mine)
        message.attach(mine)
    try:
        smtpObj = smtplib.SMTP_SSL(email_host, 465)
        smtpObj.login(email_user, email_pass)
        smtpObj.sendmail(sender, receivers, message.as_string())
        print('邮件发送成功')
        smtpObj.quit()
    except smtplib.SMTPException as e :
        print(e)
sendEmail()

image.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

楼主你好萌 发表于 2020-11-10 10:57
邮箱的验证机制吧,应该无解
thepoy 发表于 2020-11-10 10:58
如果是附件问题,可以考虑把附件放到网盘里,发送网盘分享链接。
我心飞翔1995 发表于 2020-11-10 10:59
被当成垃圾邮件了,去被发送邮箱设置一下拦截
hjlarry 发表于 2020-11-10 11:09
换个账号试试,应该是频繁尝试被当成垃圾邮件了
yyaocs 发表于 2020-11-10 11:31
理论上不应该是smtplib的锅,你手动发送试试?
如果手动没问题,你试试伪装一下header吧?类似构造一下邮件地址和头信息msg.Headers.Add

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
We. + 1 + 1 老哥你的思路很清晰啊,找到原因了,就是header的问题,把收件人和抄送用He.

查看全部评分

 楼主| We. 发表于 2020-11-10 11:51
楼主你好萌 发表于 2020-11-10 10:57
邮箱的验证机制吧,应该无解

每个月手动发邮件那不得累死啊 , 有其他替代的办法吗
zpy2 发表于 2020-11-10 12:37
We. 发表于 2020-11-10 11:51
每个月手动发邮件那不得累死啊 , 有其他替代的办法吗

活码不香吗,或者像在线查分一样。发邮件,除非自己搭建邮局吧。
 楼主| We. 发表于 2020-11-10 14:41
zpy2 发表于 2020-11-10 12:37
活码不香吗,或者像在线查分一样。发邮件,除非自己搭建邮局吧。

活码是啥???
 楼主| We. 发表于 2020-11-10 15:12
yyaocs 发表于 2020-11-10 11:31
理论上不应该是smtplib的锅,你手动发送试试?
如果手动没问题,你试试伪装一下header吧?类似构造一下邮 ...

老哥牛逼,抄送人和收件人用Header方法嵌套一下就发出去了。这个坑迈过去了真爽!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 11:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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