Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHPMailer default configuration SMTP

I know how to use SMTP with PHPMailer:

$mail             = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->Host       = "mail.yourdomain.com"; // sets the SMTP server
$mail->Username   = "yourname@yourdomain"; // SMTP account username
$mail->Password   = "yourpassword";        // SMTP account password

And it works fine. But my question is:

How can I configure PHPMailer to use these settings on default, so that I do not have to specify them each time I want to send mail?

like image 334
Gilly Avatar asked Jan 10 '13 07:01

Gilly


2 Answers

Create a function, and include / use it.

function create_phpmailer() {
  $mail             = new PHPMailer();
  $mail->IsSMTP(); // telling the class to use SMTP
  $mail->SMTPAuth   = true;                  // enable SMTP authentication
  $mail->Host       = "mail.yourdomain.com"; // sets the SMTP server
  $mail->Username   = "yourname@yourdomain"; // SMTP account username
  $mail->Password   = "yourpassword";        // SMTP account password
  return $mail;
}

And call create_phpmailer() to create a new PHPMailer object.

Or you can derive your own subclass, which sets the parameters:

class MyMailer extends PHPMailer {
  public function __construct() {
    parent::__construct();
    $this->IsSMTP(); // telling the class to use SMTP
    $this->SMTPAuth   = true;                  // enable SMTP authentication
    $this->Host       = "mail.yourdomain.com"; // sets the SMTP server
    $this->Username   = "yourname@yourdomain"; // SMTP account username
    $this->Password   = "yourpassword";        // SMTP account password
  }
}

and use new MyMailer().

like image 175
Dutow Avatar answered Sep 21 '22 10:09

Dutow


Can I not just edit the class.phpmailer.php file?

It's best not to edit class files themselves because it makes the code harder to maintain.

like image 23
nickstaw Avatar answered Sep 24 '22 10:09

nickstaw