Я отправляю почту с помощью PhpMailer, но я хотел бы сохранить почту в папке «Отправленные» в моей веб-почте и Outlook. У меня есть скрипт, но он не может открыть (imap_open) файл.
Какой правильный путь?
Вот сценарий:
<?php
require($_SERVER['DOCUMENT_ROOT'].'/admin/PHPMailer/class.phpmailer.php');
require($_SERVER['DOCUMENT_ROOT'].'/adminPHPMailer/PHPMailerAutoload.php');
class Mailer extends PHPMailer {
public function copyToFolder($folderPath = null) {
$message = $this->MIMEHeader . $this->MIMEBody;
$path = "/." . (isset($folderPath) && !is_null($folderPath) ? ".".$folderPath : ""); // Location to save the email
//$imapStream = imap_open("{" . $this->Host . "}" . $path , $this->Username, $this->Password);
$imapStream = imap_open("{" . $this->Host . "}" . $path ,"[email protected]", "password");
imap_append($imapStream, "{" . $this->Host . "}" . $path, $message);
imap_close($imapStream);
}
}
$mail = new Mailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Host = "localhost"; // sets the SMTP server
$mail->Port = 26; // set the SMTP port
$mail->Username = "[email protected]"; // SMTP account username
$mail->Password = "password"; // SMTP account password
$mail->From = "[email protected]";
$mail->FromName = "Don Joe";
$mail->AddAddress("[email protected]");
$mail->WordWrap = 50;
$mail->IsHTML(true);
$mail->Subject = "tárgy";
$mail->Body = $message;
$mail->AltBody = $message;
if(!$mail->Send())
{
echo "Message was not sent <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}else{
$mail->copyToFolder(); // Will save into inbox
$mail->copyToFolder("Sent"); // Will save into Sent folder
}
?>
Моя файловая структура на сервере:
0:/mail/mydomain.com/address/.Sent
Мой веб-сайт:
0:/public_html/mydomain.com (this is root of my website under my domain)
Моя конфигурация веб-клиента:
Username: [email protected]
Password : password
Incoming server: mail.mydomain.com
IMAP port: 143
POP3 port: 110
Outgoing server: mail.mydomain.com
SMTP port: 26
Сообщение об ошибке:
Предупреждение: imap_open () [function.imap-open]: не удалось открыть поток
Предупреждение: imap_append () ожидает, что параметр 1 будет ресурсом, логическое значение дано в
Предупреждение: imap_close () ожидает, что параметр 1 будет ресурсом, логическое значение указано в
Вы можете перечислить все имена папок вашего почтового ящика (полные имена папок), большинство почтовых серверов имеют имя отправленной папки INBOX.Sent или INBOX.SentItems и т. д. Вы должны указать полное имя.
Других решений пока нет …