PHP로 메일을 발송할 필요가 있을 때, local system에 mail server를 설치하는 것과 같은 조치없이 기존에 사용하는 메일 계정을 활용해서 보내기를 원하는 경우가 많다.

본 포스트는 그런 경우에 사용하기 좋은 라이브러리인 PHPMailer에 대한 안내이다.

PHPMailer library 다운로드 및 설치

PHPMailer는 github에서 다운로드 받을 수 있다.

https://github.com/PHPMailer/PHPMailer

PHPMailer를 사용하는 예제 코드

PHPMailer 객체를 생성한 후에 필요한 필드를 사용자의 정보를 이용해서 채우는 것으로 메일 발송과정은 완성된다.

모든 준비가 끝나면 send() 함수를 호출하는 것으로 작업은 완료된다.

수신자 지정, 참조인 지정, encryption, 첨부파일 추가 등 필요한 거의 모든 작업도 손쉽게 처리할 수 있다.

function emailsendto($filename){
  require '../PHPMailer/PHPMailerAutoload.php';

  $mail = new PHPMailer;

  $mail->isSMTP(); // Set mailer to use SMTP
  $mail->Host = 'smtp.abc.com'; // Specify main and backup SMTP servers
  $mail->SMTPAuth = true; // Enable SMTP authentication
  $mail->Username = 'hi@abc.com'; // SMTP username
  $mail->Password = '********'; // SMTP password
  $mail->SMTPSecure = 'ssl'; // Enable TLS encryption, `ssl` also accepted
  $mail->Port = 465; // TCP port to connect to

  $mail->setFrom('hi@abc.com', 'Test Mail');
  $mail->addAddress('hello@abc.com', 'Hello'); // Add a recipient
  $mail->addReplyTo('hi@abc.com', 'Information');
  $mail->addCC('howareyou@abc.com');

  $mail->addAttachment($filename); // Add attachments
  $mail->isHTML(true); // Set email format to HTML

  $mail->Subject = 'Test Mail';

  $body = "This is an email for test
";
  $body .= "
";

  $mail->Body = $body;

  if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
  } else {
    echo 'Message has been sent';
  }
}
Advertisements