Python 电子邮件 PDF:某些 PDF 已损坏

2024-03-04

我正在尝试将 PDF 文件附加到电子邮件中。

对于一个 PDF(打印为 PDF 的 Word 文档),它可以工作(收件人在 Outlook 中打开它没有问题)。

然而,对于其他 PDF(除了大了几 KB 之外,它们看起来都一样),它们会被损坏。

是一个失败(损坏)的示例。

import smtplib, os
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from email.utils import formatdate
from email import encoders

attachment_path=r'C:\Directory'+'\\'

login='login'
password='password'
part=MIMEBase('application',"octet-stream")

def message(attachment): #attachment is just the PDF file name
    fromaddr = "[email protected] /cdn-cgi/l/email-protection"
    cc=fromaddr
    msg = MIMEMultipart()
    msg['From'] = fromaddr
    msg['To'] = "[email protected] /cdn-cgi/l/email-protection"
    msg['Date'] = formatdate(localtime = True)
    msg['Subject'] = "Subject"

    body='''
    <!DOCTYPE html>
    <html>
    <body>

    <p><font face="Tahoma" size=2> I hope everything is going well.</p></font> 

    </body>
    </html>
    '''
    msg.attach(MIMEText(body, 'html'))
    part.set_payload(open(attachment_path+attachment,'rb').read())
    encoders.encode_base64(part)
    part.add_header('Content-Disposition', 'attachment; filename="{0}"'.format(os.path.basename(attachment_path+attachment)))
    msg.attach(part)

    mail=smtplib.SMTP('Server',587)
    mail.ehlo()
    mail.starttls()
    mail.login(login,password)
    mail.sendmail(fromaddr,[toaddr,cc],msg.as_string())

我尝试使用以下内容代替 Base 64 编码,但无济于事:

encoders.encode_noop(part)
encoders.encode_7or8bit(part)
encoders.encode_quopri(part)

提前致谢!


我所要做的就是移动这个:

part=MIMEBase('application',"octet-stream")

到上面:

part.set_payload(open(attachment_path+attachment,'rb').read())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 电子邮件 PDF:某些 PDF 已损坏 的相关文章

随机推荐

  • 将带有 json 的 numpy 数组发送到带有请求的 Flask 应用程序

    使用请求 我需要在单个帖子中将带有 json 数据的 numpy 数组发送到我的 Flask 应用程序 我该怎么做呢 转换 numpy 数组arr到 json 时 可以将其序列化 同时保留维度json dumps arr tolist 然后
  • LIKE '%...' 如何在索引上查找?

    我期待这两个SELECT具有相同的执行计划和性能 由于有一个前导通配符LIKE 我期望进行索引扫描 当我运行这个并查看计划时 第一个SELECT行为符合预期 通过扫描 但第二个SELECT计划显示索引查找 并且运行速度快 20 倍 Code
  • 将散列数据作为散列的密钥传递再次返回不正确的结果

    我正在创建一个将使用 GAS 访问 AWS 服务的脚本 我使用实用程序库中的哈希函数来执行创建 v4 签名所需的所有哈希 这些函数似乎能够成功地对数据进行一次哈希处理 但尝试将哈希数据传递到参数中会产生不正确的结果 还有其他人遇到这个问题并
  • 在swift中实现函数

    我是 swift 的新手 试图实现一个简单的函数 该函数将最小和最大数字作为输入 并返回一个包含所有限制数字的数组 我收到错误 错误 对泛型类型 Array 的引用需要 中的参数 我可以知道我错过了什么吗 func serialNumber
  • Scikit-learn、KMeans:如何使用 max_iter

    我想了解类中的参数 max itersklearn cluster KMeans http scikit learn org stable modules generated sklearn cluster KMeans html 根据文档
  • Haskell:如何停止程序打印向左或向右

    我用 haskell 制作了一个计算器 我在 GHCi 中运行它 然而 由于最终的数字可以是整数或双精度数 我已经进行了类型声明 calc String gt Either Integer Double 然而 函数的输出总是在其前面有左或右
  • C++ 判断类是否具有可比性

    我或多或少是Java程序员 所以这可能是一个愚蠢的问题 但我没有找到任何简单的解决方案 我在 C 中有一个这样的类 template
  • JavaScript 排序方法处理大写字母

    注意到 JavaScript 可能有些奇怪的地方sort 方法 给定以下数组 var arr Aaa CUSTREF Copy a template Copy of Statementsmm Copy1 of Default Email T
  • 在 ColdFusion 中维护出站 TCP 连接池

    我希望从 ColdFusion 应用程序中大量使用 RESTful API 我不是 CF 专家 但我预计重复的 cfhttp 调用将成为瓶颈 因为我相信每次调用都会导致建立连接 发送请求 收到响应和断开连接 我很好奇 有没有办法维护一个连接
  • 在批处理文件中定义和使用变量

    我正在尝试在批处理文件中定义和使用变量 看起来应该很简单 echo off set location bob echo We re working with location 我得到的输出如下 We re working with 这里发生
  • jQuery Mobile 视口在 Windows Phone 中无法工作

    我正在 WindowsPhone 中测试 jQueryMobile 但视口无法正常工作 有一个解决方法这一页 http forum jquery com topic problem with virtual viewport size on
  • FireStore Tasks.whenAllComplete 与协程

    我想同步实现这段代码 但job join deferred await和火力基地await 不工作 有谁知道解决方案吗 CoroutineScope Dispatchers Main launch val job launch Tasks
  • 如何使用 System.Net.HttpClient 发布复杂类型?

    我有一个自定义复杂类型 我想使用 Web API 来使用它 public class Widget public int ID get set public string Name get set public decimal Price
  • 如何使用复选框更改 QGraphicsView 背景

    在此代码中 更改了QGraphicsView背景 现在当我检查 true 时我需要更改背景checkBox 当我设置为checkBox去检查true我需要像这段代码一样设置背景 当我设置时checkBox去检查false 我需要设置QGra
  • Tensorflow 2 抛出 ValueError:as_list() 未在未知 TensorShape 上定义

    我正在尝试在 Tensorflow 2 0 中训练 Unet 模型 该模型将图像和分割掩模作为输入 但我得到了ValueError as list is not defined on an unknown TensorShape 堆栈跟踪显
  • 带有 ActionCable 的 Rails 5 应用程序可以部署在 Windows 上吗?

    我有一个 Rails 5 应用程序 我计划将其部署在 Linux 上 但由于我们需要一些访问非常特定的仅限 Windows 的软件 因此我需要将其部署在 Windows Server 2012 R2 上 我的软件堆栈 或组合 应该是 Ngi
  • Scala 中的调试日志不会影响性能

    在 C C Objective C 等语言中 通常使用预处理器宏来定义日志记录机制 这些机制甚至不会为发布的二进制文件进行编译 因此不会造成性能影响 大致如下 ifdef DEBUG printf some event we want to
  • python 中的对象初始值设定项语法(c#)?

    我想知道是否有一种快速的方法来初始化Python中的对象 例如 在 c 中 您可以实例化一个对象并设置字段 属性 例如 SomeClass myObject new SomeClass variableX value variableY 1
  • 从 ASP.NET MVC Lambda 表达式获取价值

    我正在尝试创建自己的 HTML 帮助器 它接受一个表达式 类似于内置的 LabelFor 帮助器 我找到了当表达式与此类似时获取属性值的示例 model gt model Forename 但是 在我的一些模型中 我想获取子元素中的属性 例
  • Python 电子邮件 PDF:某些 PDF 已损坏

    我正在尝试将 PDF 文件附加到电子邮件中 对于一个 PDF 打印为 PDF 的 Word 文档 它可以工作 收件人在 Outlook 中打开它没有问题 然而 对于其他 PDF 除了大了几 KB 之外 它们看起来都一样 它们会被损坏 是一个