PhpMailerでメールを送信していますが、Webメールと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 ,"address@mydomain.com", "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 = "address@mydomain.com"; // SMTP account username
$mail->Password = "password"; // SMTP account password
$mail->From = "address@mydomain.com";
$mail->FromName = "Don Joe";
$mail->AddAddress("to@gmail.com");
$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)
私の Web クライアント構成:
Username: address@mydomain.com
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 がリソースであると想定します。