使用PHP邮件发送的邮件不会显示在我的邮件已发送文件夹中

时间:2017-11-24 11:17:05

标签: php smtp phpmailer imap codeigniter-3

我从我的网络邮箱帐户发送电子邮件到任何电子邮件地址。

邮件发送成功,但我如何在我的网络邮件帐户已发送文件夹中收到此邮件。

我使用codeigniter发送电子邮件功能。

1 个答案:

答案 0 :(得分:0)

您应该在问题中包含您的代码。

这不是PHPMailer的工作,但它是相关的。看看the end of the gmail example provided with PHPMailer。它包括一个将已发送邮件上传到IMAP文件夹的部分。基本的想法是,在收到成功的send()响应后,获取邮件的副本并将其上传到您的IMAP邮箱:

...
//send the message, check for errors
if (!$mail->send()) {
    echo "Mailer Error: " . $mail->ErrorInfo;
} else {
    echo "Message sent!";
    //Section 2: IMAP
    if (save_mail($mail)) {
        echo "Message saved!";
    }
}
//Section 2: IMAP
//IMAP commands requires the PHP IMAP Extension, found at: https://php.net/manual/en/imap.setup.php
//Function to call which uses the PHP imap_*() functions to save messages: https://php.net/manual/en/book.imap.php
//You can use imap_getmailboxes($imapStream, '/imap/ssl') to get a list of available folders or labels, this can
//be useful if you are trying to get this working on a non-Gmail IMAP server.
function save_mail($mail)
{
    //You can change 'Sent Mail' to any other folder or tag
    $path = "{imap.gmail.com:993/imap/ssl}[Gmail]/Sent Mail";
    //Tell your server to open an IMAP connection using the same username and password as you used for SMTP
    $imapStream = imap_open($path, $mail->Username, $mail->Password);
    $result = imap_append($imapStream, $path, $mail->getSentMIMEMessage());
    imap_close($imapStream);
    return $result;
}

CodeIgniter使用PHPMailer的包装器,但您应该能够以某种方式访问​​必要的数据,并且IMAP代码不是特定于PHPMailer。