Я пытаюсь отправить почту через SMTP, используя класс PHPMailer.Моя проблема в том, что с первой попытки отправитель почты работает некорректно, но при всех последующих попытках выдает ошибку:
SMTP -> NOTICE:
EOF caught while checking if connected
Мой код отправки письма:
function sendEmail($toAddress,$fromAddress,$toName,$fromName,$subject,$emailContent,$content_type = false, $attach_path="", $cc = '', $cc_name="")
{
require_once('phpmailer/class.phpmailer.php');
if (empty($content_type)) $content_type = false;
$mail = new PHPMailer();
$mail->IsSMTP(); // set mailer to use SMTP
$mail->SMTPAuth = MY_SMTP_AUTH; // turn on SMTP authentication
$mail->Host = MY_SMTP_HOST_NAME;
if (!empty($this->smtpEncryptionMode))
{
$mail->SMTPSecure= $this->smtpEncryptionMode;
}
if (!empty ($this->smtpPort))
{
$mail->Port = MY_SMTP_PORT;
}
else $mail->Port = 25;
$mail->Username = $this->smtpUserName;
$mail->Password = $this->smtpUserPassword;
$mail->From =$fromAddress;
$mail->FromName = $fromName;
if(is_array($toAddress))
{
foreach($toAddress as $to)
{
$mail->AddAddress($to, "" );
}
}
else
{
$mail->AddAddress($toAddress, $toName );
}
$mail->AddReplyTo($fromAddress, $fromName );
$mail->CharSet = 'UTF-8';
$mail->WordWrap = 80; // set word wrap to 80 characters
$mail->IsHTML($content_type); // set email format to basic
$mail->Subject = $subject;
$mail->Body = $emailContent;
//Here it sets other parameters e.g attachment path etc.
$mail->SMTPDebug = true;
$result = $mail->Send();
if($result == false ) { $result = $mail->ErrorInfo;echo $result; }// Switch this on when debugging.
return $result;
Почемувыдает ошибку для всех последовательных попыток?
Из того, что я могу сделать вывод из class.smtp.php, это то, что он не работает внутри функции Connected () , которая фактически проверяет сокетстатус экземпляра smtp_connection, и там он получает EOF.
Я полагаю, само соединение не устанавливается ... Но что происходит в первом случае?