访问MIMEMultipart消息中的pdf时出现问题

2024-03-19 10:18:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我还有一个作业,和我上次问的问题类似。我必须附加一些源代码的pdf到SMTP中的电子邮件消息。为了做到这一点,我对以前的代码做了一些轻微的修改,并使用了MIMEMultipart和MIMEText,并从以前的文章中获得了一些关于类似主题的帮助:


import cs50

import smtplib

from email.mime.multipart import MIMEMultipart

from email.mime.text import MIMEText


def main():

    message = MIMEMultipart()

    message.attach(MIMEText("This email verifies run-check of ASSIGNMENT 2."))

    message.attach(MIMEText(open("\Users\wangh\Downloads\SMF30 (3).pdf").read()))

    message["Subject"] = "ASSIGNMENT 2"

    message["From"] = "STUDENT EMAIL"

    message["To"] = "TEACHER EMAIL"

    with smtplib.SMTP_SSL("smtp.gmail.com") as smtp:

        smtp.login("STUDENT EMAIL", "PASSWORD")

        smtp.send_message(message)

    sys.exit(0)

if(__name__ == "__main__"):

    main() 

但是,当我执行此操作时,会出现以下错误:

                                                                       ^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: truncated \UXXXXXXXX escape

我认为问题可能是因为我看到的斜杠通常是另一种方式。所以我试着把代码改成

message.attach(MIMEText(open("/Users/wangh/Downloads/SMF30 (3).pdf").read()))

这触发了以下错误,可能表明原始文件路径是正确的方式:

  File "/home/ubuntu/some folder idk/SMF30.py", line 52, in <module>
    main()
  File "/home/ubuntu/some folder idk/SMF30.py", line 34, in main
    message.attach(MIMEText(open("/Users/wangh/Downloads/SMF30 (3).pdf").read()))
FileNotFoundError: [Errno 2] No such file or directory: '/Users/wangh/Downloads/SMF30 (3).pdf'

有没有关于什么地方出了问题的想法