728x90
반응형
■ PHP Mailer SMTP 메일 발송
mail 함수 sendmail 없이 gmail smtp 를 이용하여 PHP 서버를 이용하여 메일 발송하는 방법입니다.
* 메일 발송할 메일 서버 필요 (무료 메일 서버 - gmail, 가장 간편)
support.google.com/mail/answer/7126229?hl=ko
1. php mailer 설치
github.com/PHPMailer/PHPMailer
composer require phpmailer/phpmailer
상기 명령어를 이용하여 php mailer 설치
2. 메일 발송 모델 작성
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
// Load Composer's autoloader
require 'vendor/autoload.php';
// Instantiation and passing `true` enables exceptions
$mail = new PHPMailer(true);
try {
//Server settings
$mail->SMTPDebug = SMTP::DEBUG_SERVER; // Enable verbose debug output
$mail->isSMTP(); // Send using SMTP
$mail->Host = 'smtp1.example.com'; // Set the SMTP server to send through (email 보낼 때 사용할 서버를 지정)
$mail->SMTPAuth = true; // Enable SMTP authentication (SMTP 인증을 사용함)
$mail->Username = 'user@example.com'; // SMTP username (메일 계정)
$mail->Password = 'secret'; // SMTP password (메일 비밀번호)
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` also accepted
$mail->Port = 587; // TCP port to connect to (email 보낼 때 사용할 포트를 지정)
$mail->CharSet = "utf-8"; // 문자셋 인코딩 (한글깨짐 인코딩 해결)
//Recipients
$mail->setFrom('from@example.com', 'Mailer'); // 보내는 메일
$mail->addAddress('joe@example.net', 'Joe User'); // Add a recipient (받는메일)
$mail->addAddress('ellen@example.com'); // Name is optional (받는메일, 수신자명 옵션)
$mail->addReplyTo('info@example.com', 'Information'); // 답장
$mail->addCC('cc@example.com'); // 참조
$mail->addBCC('bcc@example.com'); // 숨은참조
// Attachments (첨부파일)
$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name (파일명 옵션)
// Content
$mail->isHTML(true); // Set email format to HTML (HTML 태그 사용 여부)
$mail->Subject = 'Here is the subject'; // 메일 제목
$mail->Body = 'This is the HTML message body <b>in bold!</b>'; // 메일 내용
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
$mail->send();
echo 'Message has been sent';
} catch (Exception $e) {
echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
* Body 메일 내용(본문)의 경우 HTML 코드를 작성 할 수 있는데, 이 때 CSS는 하기와 같이 style을 주지 않으면 일부 메일에서는 정상적으로 먹히지 않으니 참고바랍니다.
<div style="width:800px; height:100px;"></div>
728x90
반응형
'PHP' 카테고리의 다른 글
[PHP] 특정값이 배열 안에 존재하는지 확인 (배열 내 특정 값 체크, in_array) (0) | 2020.12.29 |
---|---|
[PHP] 페이지 에러 내용 상세 출력 (0) | 2020.12.29 |
[PHP] 코드실행 지연 sleep/usleep (0) | 2020.11.25 |
[PHP] 문자열 따옴표 처리 addslashes(), stripslashes() (0) | 2020.09.15 |
[PHP] 문자 인코딩 변환 iconv() / urlencode() (0) | 2020.09.15 |