PHPmailer - 包括站点范围文件中的设置

时间:2014-02-03 09:36:53

标签: php phpmailer

我正在使用PHP邮件程序在站点上设置多个脚本 - 所有脚本都包含配置电子邮件设置的公共代码,例如:

$mail = new PHPMailer;
$mail->isSMTP();                      // Set mailer to use SMTP
$mail->Host = 'smtp.gmail.com';   // Specify main and backup server
$mail->Port = 587;                    // Set port
$mail->SMTPAuth = true;           // Enable SMTP authentication
$mail->Username = 'me@mail.com';
$mail->Password = 'PASSWORD'; 
$mail->Subject  = "My subject";
$mail->Body = 'Message here!!';

等。

我想在网站范围内的“settings.php”文件中设置此信息一次?虽然我可以$mail->Port = $port;等,但我想知道是否有更好的方法来包含整个网站的所有代码,同时仍然在设置文件中包含信息。到目前为止,我能想到的最好的方法是三个文件:

文件1:settings.php

$host = 'smtp.gmail.com';
$port = 587;
$SMTPAuth = true;
$Username = 'me@mail.com';
$Password = 'PASSWORD';

文件2:mailer_settings.php

include('settings.php');

$mail->isSMTP();                      // Set mailer to use SMTP
$mail->Host = $host;      // Specify main and backup server
$mail->Port = $port;                      // Set port
$mail->SMTPAuth = $SMTPAuth;              // Enable SMTP authentication
$mail->Username = $Username;
$mail->Password = $Password; 

文件3:mailer_script.php

$mail = new PHPMailer;
include('mailer_settings.php');
$mail->Subject  = "My subject";
$mail->Body = 'Message here!!';

有更有效的方法吗?

1 个答案:

答案 0 :(得分:0)

每次使用PHPMailer时,您都需要使用变量$mail

我宁愿建议你编写一个包装类,它将配置选项作为一个数组,然后创建一个新的PHPMailer实例,设置它给出的选项,并返回实例......

或者您也可以扩展 PHPMailer类,而不是包装类,以便它调用其父构造函数然后设置选项。