2016-12-13 18 views
1

PHPMailerに必要な基本情報を設定するカスタムクラス関数を作成しました(毎回入力する必要はありません)。ここに関数の正確なコードがあります。カスタムPHP関数のPHPMailer

<?php 

class PHPMailer { 

    public static function send() {// I will just add here the addAddress 
     require_once 'mail/PHPMailerAutoload.php'; 

     $mail = new PHPMailer; 

     $mail->isSMTP(); 
     $mail->SMTPDebug = 0; 
     $mail->Debugoutput = 'html'; 
     $mail->Host = "smtp.gmail.com"; 
     $mail->Port = 587; 
     $mail->SMTPSecure = 'tls'; 
     $mail->SMTPAuth = true; 
     $mail->Username = "validusername"; 
     $mail->Password = "validpassword"; 
     $mail->setFrom('validusername', 'Valid Username'); 
     $mail->addAddress('[email protected]', 'Googol'); 

     $mail->Subject = "Subject"; 
     $mail->Body = "<a href=\"www.google.com\">www.google.com</a>"; 
     $mail->IsHTML(true); 

     if (!$mail->send()) { 
      return "Error sending message" . $mail->ErrorInfo; 
     } else { 
      return "Message sent!"; 
     } 
    } 
} 

は、これまでのところ、それは私のローカルホストに取り組んでいるが、私は疑問を持っている:

  • は、これは良い習慣ですか?
  • コードは大丈夫ですか?
  • これには何らかの欠点がありますか?
  • ここでパフォーマンスを最適化する必要がある場合は、それを実現するために何をする必要がありますか?

私はPHPとPHPMailerで本当に新しいです。小さな答えは私に役立ちます、ありがとう。

答えて

0

あなたのコードはうまくいくようですが、より良い方法はvariablesと呼ぶことができるため、クラスを呼び出すたびに設定する必要はありません。

class phpmailer { 
    public function sendMail($email, $message, $subject) 
    { 
     require_once('../phpmailer/class.phpmailer.php'); 
     require_once('../phpmailer/class.smtp.php'); 
     require_once('../phpmailer/class.pop3.php'); 
     $mail = new PHPMailer(); 
     $mail->isSMTP(); 
     $mail->SMTPDebug = 0; 
     $mail->SMTPAuth = true; 
     $mail->SMTPSecure = "ssl"; 
     $mail->Host = "smtp.gmail.com"; 
     $mail->Port = 465; 
     $mail->addAddress($email); 
     $mail->Username = "[email protected]"; 
     $mail->Password = "email_password"; 
     $mail->setFrom('[email protected]', 'Alias'); 
     $mail->addReplyTo("[email protected]", "Alias"); 
     $mail->Subject = $subject; 
     $mail->msgHTML($message); 
     $mail->send(); 
    } 
} 

その後、あなたはそれが好きで呼び出すことができます。

$email_send = new phpmailer(); 
$email_send->sendMail($user_email,$message,$subject); 
+0

私はそれらの3 'require_once'の目的が何であるかを求めることができますか?ありがとう。 –

+0

最初はphpメーラークラス用、2番目と3番目はsmtp用、pop3用です – Blueblazer172

+0

ああ、ありがとう、ありがとう、btw、単純な電子メール(localhost)を送信しようとしたところ、送信するのに2秒。それは大丈夫ですか?私はlocalhostを使用していて、2秒かかります。これをプロダクション(共有ホスティング)で使用するとどうなりますか? 2〜5秒までかかりますか? –