【问题标题】:Creating messages (ie drafts) in Gmail with IMAP/SMTP?使用 IMAP/SMTP 在 Gmail 中创建消息(即草稿)?
【发布时间】:2010-11-15 10:20:10
【问题描述】:

我已经通过 PHP 中的 IMAP 函数对 Gmail 进行了相当多的收件箱操作,但我还没有找到一种创建邮件的方法。我不确定是否需要 IMAP 或 SMTP,但我想使用 PHP 创建一条新消息(特别是草稿),该消息存储在我的收件箱中,所有内容都可以在以后发送。我该怎么办?

【问题讨论】:

    标签: php smtp gmail imap


    【解决方案1】:

    你可能想看看imap_mail_compose()

    编辑 这不会在服务器上创建消息。您还需要使用 imap_append()。

    进一步编辑 这似乎工作正常:

    <?php 
    $rootMailBox = "{imap.gmail.com:993/imap/ssl}";
    $draftsMailBox = $rootMailBox . '[Google Mail]/Drafts';
    
    $conn = imap_open ($rootMailBox, "sdfsfd@gmail.com", "password") or die("can't connect: " . imap_last_error());
    
    $envelope["to"]  = "test@test.com";
    $envelope["subject"]  = "Test Draft";
    
    $part["type"] = TYPETEXT;
    $part["subtype"] = "plain";
    $part["description"] = "part description";
    $part["contents.data"] = "Testing Content";
    
    $body[1] = $part;
    
    $msg = imap_mail_compose($envelope, $body);
    
    if (imap_append($conn, $draftsMailBox, $msg) === false) {
            die( "could not append message: " . imap_last_error() )  ;
    }
    

    【讨论】:

    • 太好了,谢谢!我不确定这是否真的在服务器上创建了消息。文档听起来好像它只是创建了 $envelope 和 $body 数组的 MIME 字符串。
    • 我不得不在您的解决方案中将 '[Google Mail]/Drafts' 更改为 '[Gmail]/Drafts',但现在它可以正常工作了。谢谢!
    • 看起来他们已经从[Google Mail]/Folder变成[Gmail]/Folder
    猜你喜欢
    • 2022-07-26
    • 2022-08-16
    • 2017-06-17
    • 2019-04-25
    • 1970-01-01
    • 2013-06-01
    • 2020-04-24
    • 2016-01-12
    • 2018-04-19
    相关资源
    最近更新 更多