php imap_mail不会发送电子邮件

时间:2014-12-24 12:36:37

标签: php imap

大家好我想通过imap_mail函数发送电子邮件

http://php.net/manual/en/function.imap-mail.php

$to = implode(", ", $sentTo);
$subject = $email_info['subject'];
$body = wordwrap($email_info['body']);
$headers = "MIME-Version: 1.0;\r\nContent-type: text/html; charset=iso-8859-1;\r\nContent-Transfer-Encoding: 8bit;\r\n"
                        . "From: " . $account_doc->email . "\r\n" . "Reply-To: " . $account_doc->email . "\r\n";
$return_path = $account_doc->email;
$cc = implode(", ", $sentCC);
$bcc = implode(", ", $sentBCC);

if ( strlen($cc) === 0 ) $cc = NULL;
if ( strlen($bcc) === 0 ) $bcc = NULL;
if ( strlen($subject) === 0 ) $subject = "-";

$is_sent = imap_mail($to, $subject, $body, $headers, $cc, $bcc, $return_path);

if ($is_sent) {
    imap_append( $connection , $account_doc->activeFolders->SENT
                    , "MIME-Version: 1.0;\r\nContent-type: text/html; charset=iso-8859-1;\r\nContent-Transfer-Encoding: 8bit;\r\n"
                            . "From: {$this->userDoc->name}\r\nTo: {$to}\r\nSubject: {$subject}\r\nDate: " . date("r", strtotime("now")) . "\r\n\r\n{$body}\r\n"
                    );

imap_close($connection);

$this->json_response("Email is sent");

imap_mail函数返回true,并附加电子邮件,我可以在邮箱中看到它。 但是,当我查看我发送的电子邮件时,这些电子邮件仍未发送。

有没有人知道导致问题的原因。

1 个答案:

答案 0 :(得分:3)

通常,

IMAP不会发送电子邮件。所有APPEND都会向邮件文件夹添加邮件,但不会导致邮件传递。通常,您需要使用SMTP。典型的电子邮件客户端将通过SMTP发送,然后将相同的消息附加到SENT文件夹。

某些服务器(例如Courier)具有可选扩展程序,可通过特殊的发件箱文件夹发送电子邮件,但此类扩展程序未得到广泛部署或支持。