본문 바로가기
PHP

[PHP] phpmailer을 이용한 이메일 전송

by teamnova 2021. 4. 15.
728x90

구현에 사용된 코드는 stickcode에서 확인하실수있습니다.

 

stickode.com/detail.html?no=2041

 

스틱코드

 

stickode.com

 

 

우선 phpamiler을 이용하기 위해 php 패키지 도구인 composer 을 설치하겠습니다.

 

리눅스 터미널에서

 

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin/
혹은
php -r "readfile('https://getcomposer.org/installer');" | php -- --install-dir=/usr/local/bin/

로 설치후

 

sudo ln -s /usr/local/bin/composer.phar /usr/local/bin/composer 

 

composer을 쳐서 다음화면이 나오면 설치된것입니다.

 

그리고 해당 웹 프로젝트 폴더로 이동합니다 (ex : /var/www/html)

 

composer init 을 입력하여 composer을 초기화합니다.

그냥 엔터치면서 넘어가고 기본세팅으로 만들었습니다.

 

그리고 다음을 입력해서 phpmailer을 설치합니다.

composer require phpmailer/phpmailer

composer update

 

이제 phpmailer 설치가 끝났습니다.

 

메일발송을 위해 구글 smtp 를 이용할건데요

 

myaccount.google.com/lesssecureapps

 

로그인 - Google 계정

하나의 계정으로 모든 Google 서비스를 Google 계정으로 로그인

accounts.google.com

 해당 링크에서 보안수준이 낮은앱 엑세스를 허용하셔야 합니다.

구글 계정이 여러개 가지고 계신분들은 해당하는 계정의 세팅인지 확인해주세요

 

 

이제 php 코드를 통해 지메일 계정을 이용해서 메일을 발송해보겠습니다.

 

 

index.php

<?php
//phpinfo();
// Include router class
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;

require   'Router.php';
require 'vendor/autoload.php';
//echo "hi";
// Add base route (startpage)

// 일반적인 홈경로
Router::add('get','/',function(){
        echo '라우터 홈입니다.dd';
    });

//  static html file 테스트
Router::add('get','/phpmailer',function(){

    $mail = new PHPMailer();

    $mail->CharSet = 'UTF-8';
//Tell PHPMailer to use SMTP
    $mail->isSMTP();
    $mail->SMTPDebug = SMTP::DEBUG_SERVER; // 디버그 모드, DEBUG_OFF 시 출력 없음

    $mail->Host = 'smtp.gmail.com';
    //Gmail 이용

    $mail->Port = 587;
    //SMTP 고정 포트

    //encrypte 메커니즘 세팅
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;

//SMTP AUTH 사용
    $mail->SMTPAuth = true;

// gmail 계정주소명
    $mail->Username = 'ㅁㅁㅁㅁㅁㅁ@gmail.com';

// gmail 패스워드
    $mail->Password = '패스워드값';

//  보내는 사람 주소, 이름 세팅 - 보내는사람 주소은 추가 세팅을 해주지않으면 Username의 계정
    $mail->setFrom('ㅁㅁㅁㅁㅁㅁ@gmail.com', 'ㅁㅁㅁㅁ');

    $email = 'mulbang0@naver.com';
// 내가 보낼 주소, 이름(선택)
    $mail->addAddress($email, null);
//        $mail->addCustomHeader('Content-Type', 'text/plain;charset=utf-8');

    // 메일 제목, 내용 세팅
    $mail->Subject = '메일 제목';
    $mail->Body = "
    <b>메일 내용</b>
     <br/>
     <br/>
    <a target='_self' href='' >링크</a>
    ";
    $mail->isHTML(true);
    if (!$mail->send()) {
        echo 'Mailer Error: ' . $mail->ErrorInfo;
    } else {
        echo 'Message sent';
    }



});

?>

 

저는 이전 포스팅에서 이용한 Router 클래스를 이용했습니다.

stickode.tistory.com/32?category=921753

 

[PHP] 간단한 URL Router 구축해보기

이번 포스팅에서 다룰 내용은 PHP로 간단한 URL Router을 작성해보려고 합니다. 이전 PDO를 이용한 CRUD 코드를 Router을 통해서 간단히 연결해 보겠습니다. 사용된 모든 코드는 스틱코드 포스팅에 업로

stickode.tistory.com

 

하나의 php파일을 실행시켜서 메일만 보내고싶은분은 

 

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
require 'vendor/autoload.php';

을 추가후에

 

phpmailer 경로의 function 값을 복사해서 사용하시면 됩니다.

메일 확인

지금까지 스틱코드를 통해 php mail 발송하기였습니다.