2016-12-13 1 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 메일러 클래스 용이며 두 번째와 세 번째는 smtp 용이며 pop3 용입니다. – Blueblazer172

+0

아, 고마워, btw, 간단한 이메일 (localhost)을 보내려고 할 때까지 보낼 2 초. 괜찮습니까? 내가 localhost를 사용 중이고 최대 2 초가 걸리므로 프로덕션 환경 (공유 호스팅)에서 사용하면 어떻게됩니까? 2 ~ 5 초가 걸릴까요? –