10

PHPMailer で SMTP を使用する方法を知っています。

$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

そして、それはうまくいきます。しかし、私の質問は次のとおりです。

メールを送信するたびにこれらの設定を指定する必要がないように、デフォルトでこれらの設定を使用するように PHPMailer を構成するにはどうすればよいですか?

4

3 に答える 3

18

関数を作成し、それを含める/使用します。

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;
}

そして、create_phpmailer()を呼び出して、新しいPHPMailerオブジェクトを作成します。

または、パラメータを設定する独自のサブクラスを派生させることもできます。

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
  }
}

新しいMyMailer()を使用します。

于 2013-01-10T08:08:21.883 に答える
0

このフックも使用できます。

 /**
     * Fires after PHPMailer is initialized.
     *
     * @since 2.2.0
     *
     * @param PHPMailer &$phpmailer The PHPMailer instance, passed by reference.
     */
    do_action_ref_array( 'phpmailer_init', array( &$phpmailer ) );

wp_mail 関数自体のソースから、phpmailer クラスを直接変更します。

于 2016-03-08T13:41:40.753 に答える