2015-11-07 3 views
2

, как написано на эту тему, PHPMailer отправляет сообщения с электронной почтой моего сервера, а не с электронной почтой фактического отправителя. , например:PHPMailer отправляет сообщения с моего сервера по электронной почте

от: SenderName [email protected]

отправитель электронной почты не отображается на адрес электронной почты из раздела

вот мой код

$result = mysql_query($insert_query, $connection) or die(mysql_error()); 

    if($result) 
    { 


    require_once('../se482/class.phpmailer.php'); 

//$mail->SMTPDebug = 3;        // Enable verbose debug output 

//$mail->IsSMTP(true); 
$mail = new PHPMailer;          // Set mailer to use SMTP 
$mail->Host = 'smtp.gmail.com'; // Specify main and backup SMTP servers 
$mail->SMTPAuth = true;        // Enable SMTP authentication 
$mail->Username = '[email protected]';     // SMTP username 
$mail->Password = 'mypassowrd';       // SMTP password 
$mail->Priority = 1; // Highest priority - Email priority (1 = High, 3 = Normal, 5 = low) 
$mail->SMTPSecure = 'tls';       // Enable TLS encryption, `ssl` also accepted 
$mail->Port = 587;         // TCP port to connect to 
$mail->CharSet  = 'UTF-8'; 
    $mail->Encoding = '8bit'; 
$mail->addAddress('[email protected]');  // Add a recipient 
$mail->setFrom($email, $name); 
//$mail->addAddress('[email protected]', 'Joe User');  // Add a recipient 
//$mail->addAddress('ellen[email protected]');    // Name is optional 
//$mail->addReplyTo('[email protected]', 'Information'); 
//$mail->addCC('[email protected]'); 
//$mail->addBCC('[email protected]'); 

$mail->isHTML(true);         // Set email format to HTML 

$mail->addAttachment('/var/tmp/file.tar.gz');   // Add attachments 
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); 

$mail->From = $email; 
$mail->Subject = 'Here is the subject'; 
$mail->Body = $comment; 
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; 
    $mail->Send(); 
    $mail->SmtpClose(); 
if(!$mail->send()) { 
    echo 'Message could not be sent.'; 
    echo 'Mailer Error: ' . $mail->ErrorInfo; 
} else { 
    echo 'Message has been sent'; 
} 

    } 
+0

удалите комментарий к '// $ mail-> IsSMTP (true); 'использовать smtp у вас есть настройка – roullie

+0

, если я его удалю, я получаю эту ошибку: фатальная ошибка: вызов функции-члена IsSMTP() в не-objec – sara

+0

положите ее ниже' $ mail = new PHPMailer; ' – roullie

ответ

0

$mail->from является установлен в $email, который не определен нигде.

+0

не определено, но я не копировал весь код здесь – sara

1

Вы должны указать class.smtp.php, а также использовать smtp. Также раскомментируйте //$mail->isSMTP(true);

Как упомянуто в документации, чтобы избежать этого можно включать только класс автозагрузчика, который PHPMailerAutoload.php

обновленный код

$result = mysql_query($insert_query, $connection) or die(mysql_error()); 

    if($result) 
    { 


    //require_once('../se482/class.phpmailer.php'); 
    // require_once('../se482/class.smtp.php'); 
//or 
    require_once('../se482/PHPMailerAutoload.php'); 

//$mail->SMTPDebug = 3;        // Enable verbose debug output 

$mail->isSMTP(true); 
$mail = new PHPMailer;          // Set mailer to use SMTP 
$mail->Host = 'smtp.gmail.com'; // Specify main and backup SMTP servers 
$mail->SMTPAuth = true;        // Enable SMTP authentication 
$mail->Username = '[email protected]';     // SMTP username 
$mail->Password = 'mypassowrd';       // SMTP password 
$mail->Priority = 1; // Highest priority - Email priority (1 = High, 3 = Normal, 5 = low) 
$mail->SMTPSecure = 'tls';       // Enable TLS encryption, `ssl` also accepted 
$mail->Port = 587;         // TCP port to connect to 
$mail->CharSet  = 'UTF-8'; 
    $mail->Encoding = '8bit'; 
$mail->addAddress('[email protected]');  // Add a recipient 
$mail->setFrom($email, $name); 
//$mail->addAddress('[email protected]', 'Joe User');  // Add a recipient 
//$mail->addAddress('[email protected]');    // Name is optional 
//$mail->addReplyTo('[email protected]', 'Information'); 
//$mail->addCC('[email protected]'); 
//$mail->addBCC('[email protected]'); 

$mail->isHTML(true);         // Set email format to HTML 

$mail->addAttachment('/var/tmp/file.tar.gz');   // Add attachments 
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); 

$mail->From = $email; 
$mail->Subject = 'Here is the subject'; 
$mail->Body = $comment; 
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; 
    $mail->Send(); 
    $mail->SmtpClose(); 
if(!$mail->send()) { 
    echo 'Message could not be sent.'; 
    echo 'Mailer Error: ' . $mail->ErrorInfo; 
} else { 
    echo 'Message has been sent'; 
} 

    } 

Update

Вы также добавить app верительных в get_auth_token.php, как указано в документации для использования gmail. Вот ссылка https://github.com/PHPMailer/PHPMailer/wiki/Using-Gmail-with-XOAUTH2

+0

извините, как я могу включить класс и использовать smtp? – sara

+0

все еще не работает – sara

+0

Я обновил ответ – Karan

Смежные вопросы