PHPmailer without using SMTP

帅比萌擦擦* 提交于 2019-12-04 03:27:40

I commented out the SMTP lines and now it works

<?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 = 'from@example.com';
$mail->FromName = 'Mailer';
$mail->addAddress('name@domain.com', 'User');     // Add a recipient
$mail->addAddress('ellen@example.com');               // Name is optional
$mail->addReplyTo('info@example.com', 'Information');
$mail->addCC('cc@example.com');
$mail->addBCC('bcc@example.com');

$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';
}
?>
squarecandy

Joseph Kreifels II is correct.

In particular, see the comments in the class.phpmailer.php file:

/**
 * 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';
}

So, be sure to remove $mail->IsSMTP(); from your settings, but also you may need to add $mail->IsMail(); or $mail->IsSendmail(); depending on your server setup.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!