代码之家  ›  专栏  ›  技术社区  ›  RonaldHucklebee

我有自动发送电子邮件的代码,我想在电子邮件中添加一张图片,但实际路径是在电子邮件中发送的[重复]

  •  0
  • RonaldHucklebee  · 技术社区  · 3 年前

    所以,我有一个程序可以为我发送电子邮件。 这个程序的目标是让它按计划运行,并每24小时发送一次电子邮件,但首先我需要弄清楚如何在发送的电子邮件上附加图像。 到目前为止,我有以下内容:

    import os
    from email.message import EmailMessage
    import ssl
    import smtplib
    email_sender = '[email protected]'
    Password = 'app password'
    email_receiver = '[email protected]'
    subject = 'Message subject'
    body = 'message body'
    em = EmailMessage()
    em['From'] = email_sender
    em['To'] = email_receiver
    em['Subject'] = subject
    em.set_content(body)
    context = ssl.create_default_context()
    with smtplib.SMTP_SSL('smtp.gmail.com', 465, context=context) as smtp:
            smtp.login(email_sender, Password)
            em.add_attachment('path to desired .jpg file', subtype = ".jpg", filename = ".jpg file name")
            smtp.sendmail(email_sender, email_receiver, em.as_string())
    

    所以,我遇到的问题是,它会发送带有附件的电子邮件,但当附件打开时,它只是图像从我的计算机中的路径的打印输出,而不是图像本身。那么,我如何将图片链接到电子邮件,而不仅仅是路径? 感谢您提供的任何帮助。

    1 回复  |  直到 3 年前
        1
  •  1
  •   Tim Roberts    3 年前

    如果需要内容,请传递内容:

            em.add_attachment(open('path to desired .jpg file', 'rb').read(), subtype = ".jpg", filename = ".jpg file name")