2015-09-06 6 views
3

Я добавил папку PHPMailer в свою корневую папку на своем веб-сервере, и я просто получаю сообщение об ошибке, которое связано с SMTP.PHPmailer без использования SMTP

Есть ли способ использовать PHPMailer без необходимости входа в учетную запись электронной почты? Могу ли я просто отправить сервер по электронной почте на адрес?

Я искал этот сайт и нашел этот

$email = new PHPMailer(); 
$email->From  = '[email protected]'; 
$email->FromName = 'Your Name'; 
$email->Subject = 'Message Subject'; 
$email->Body  = $bodytext; 
$email->AddAddress('[email protected]'); 

$file_to_attach = 'PATH_OF_YOUR_FILE_HERE'; 

$email->AddAttachment($file_to_attach , 'NameOfFile.pdf'); 

return $email->Send(); 

Но я получаю ошибку говорит "Message could not be sent.Mailer Error: You must provide at least one recipient email address."

+0

Я только что получил электронное письмо от Google, говоря, что они заблокировали попытку SMTP, угадайте, откуда возникла ошибка ... Я попробую еще раз. Но, пожалуйста, ответьте на мой вопрос –

+0

та же ошибка: сообщение не удалось отправить. Ошибка отправителя: сбой SMTP connect(). https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting –

+0

его значением по умолчанию является использование почты php() –

ответ

7

Я закомментировал SMTP линий и теперь он работает

<?php 

require 'phpmailer/PHPMailerAutoload.php'; 

$mail = new PHPMailer; 

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

//$mail->isSMTP();          // Set mailer to use SMTP 
//$mail->Host = 'smtp.gmail.com'; // Specify main and backup SMTP servers 
//$mail->SMTPAuth = true;        // Enable SMTP authentication 
//$mail->Username = '';     // SMTP username 
//$mail->Password = '';       // SMTP password 
//$mail->SMTPSecure = 'tls';       // Enable TLS encryption, `ssl` also accepted 
//$mail->Port = 587;         // TCP port to connect to 

$mail->From = '[email protected]'; 
$mail->FromName = 'Mailer'; 
$mail->addAddress('[email protected]', '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->addAttachment('');   // Add attachments 
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name 
$mail->isHTML(true);         // Set email format to HTML 

$mail->Subject = 'Here is the subject'; 
$mail->Body = 'This is the HTML message body <b>in bold!</b>'; 
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; 

if(!$mail->send()) { 
    echo 'Message could not be sent.'; 
    echo 'Mailer Error: ' . $mail->ErrorInfo; 
} else { 
    echo 'Message has been sent'; 
} 
?> 
0

Джозеф Kreifels II верно.

В частности, увидеть комментарии в файле class.phpmailer.php:

/** 
* Sets Mailer to send message using SMTP. 
* @return void 
*/ 
public function IsSMTP() { 
    $this->Mailer = 'smtp'; 
} 

/** 
* Sets Mailer to send message using PHP mail() function. 
* @return void 
*/ 
public function IsMail() { 
    $this->Mailer = 'mail'; 
} 

/** 
* Sets Mailer to send message using the $Sendmail program. 
* @return void 
*/ 
public function IsSendmail() { 
    if (!stristr(ini_get('sendmail_path'), 'sendmail')) { 
    $this->Sendmail = '/var/qmail/bin/sendmail'; 
    } 
    $this->Mailer = 'sendmail'; 
} 

Итак, не забудьте удалить $mail->isSMTP(); от ваших настроек, но также вам может понадобиться добавить $mail->isMail(); или $mail->isSendmail(); в зависимости от настроек вашего сервера ,

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