【问题标题】:How to create an email and send it to specific mailbox with imaplib如何使用 imaplib 创建电子邮件并将其发送到特定邮箱
【发布时间】:2011-04-15 17:51:23
【问题描述】:

我正在尝试使用 python 的 imaplib 创建一封电子邮件并将其发送到具有特定名称的邮箱,例如收件箱。任何人都有一些很棒的建议:)。

【问题讨论】:

    标签: python imaplib


    【解决方案1】:

    您可以使用 Python 的内置 imaplib 模块和 append() 命令将邮件附加到 IMAP 文件夹:

    import imaplib
    from email.message import Message
    from time import time
    
    connection = imaplib.IMAP4_SSL(HOSTNAME)
    connection.login(USERNAME, PASSWORD)
    
    new_message = Message()
    new_message["From"] = "hello@itsme.com"
    new_message["Subject"] = "My new mail."
    new_message.set_payload("This is my message.")
    
    connection.append('INBOX', '', imaplib.Time2Internaldate(time()), str(new_message).encode('utf-8'))
    

    【讨论】:

    • 我已经尝试过你的方法,但是我收到了这个错误:TypeError: cannot use a bytes pattern on a string-like object
    • 电子邮件未在任何地方定义。
    • @ShahMuzaffar email 是您导入的包。
    【解决方案2】:

    由于我还不能评论 user3556956 的评论,这里是 python3 的答案:

    connection.append('INBOX', '', imaplib.Time2Internaldate(time.time()), str(new_message).encode('utf-8'))
    

    简而言之,您必须将消息作为字节而不是 python 字符串传递。

    【讨论】:

      【解决方案3】:

      不知道他们是如何做到的,但 Microsoft Outlook 不允许您将电子邮件从本地文件夹移动到远程 IMAP 文件夹吗?

      【讨论】:

        【解决方案4】:

        IMAP 协议不是为发送电子邮件而设计的。它旨在操作邮箱。

        要创建电子邮件并发送它,您可以使用 SMTP,如 smtplib

        要将邮箱中已存在的电子邮件从一个文件夹移动到另一个文件夹,您可以将邮件复制到所需文件夹,然后使用uid 将其从旧文件夹中删除,如答案here

        【讨论】:

        • thk:),但是我可以使用 imaplib 在特定邮箱中创建电子邮件吗?
        • @vernomcrp:不,因为正如我所解释的,imaplib 不能用于创建电子邮件。您可以先发送电子邮件,然后按上述方式移动它。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-02-08
        • 2014-10-03
        • 2015-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多