개발 꿀팁/PHP

PHP에서 PHPMailer로 메일 보내기

Jammie 2022. 9. 20. 11:54
반응형

메일 발송 시 확장 라이브러리, composer 가져오기 주소 사용

composer require phpmailer/phpmailer

메일 코드 보내기

function sendMail($to, $content,$host,$from_name,$title)
    {
        //인스턴스화된 PHPMailer 코어 클래스
        $mail = new \PHPMailer\PHPMailer\PHPMailer();

        //디버깅을 위해 smtp의 debug를 사용할지 여부 개발 환경을 제안합니다 생산 환경의 주석을 달면 debug 디버깅 모드를 기본값으로 끌 수 있습니다
        $mail->SMTPDebug = 0;

        //smtp 인증 방식을 사용하여 메일 보내기
        $mail->isSMTP();

        //smtp는 인증이 필요합니다 이것은 true여야 합니다
        $mail->SMTPAuth = true;

        //qq 도메인 이메일 링크 서버 주소
        $mail->Host = 'smtp.qq.com';

        //ssl 암호화 방식으로 로그인 권한 설정
        $mail->SMTPSecure = 'ssl';

        //ssl이 smtp 서버에 연결된 원격 서버 포트 번호를 설정합니다. 기본값은 25입니다. 하지만 지금은 465 또는 587 옵션을 사용할 수 없는 것 같습니다
        $mail->Port = 465;
        //보낸 사람의 호스트 도메인을 설정할 수 있습니다. localhost의 내용을 기본값으로 설정할 수 있습니다. 도메인 이름을 사용하는 것이 좋습니다
        $mail->Hostname = $host;

        //보내는 메일의 인코딩을 설정합니다. 선택 사항 GB2312 저는 utf-8을 좋아합니다. 일부 클라이언트에서 수신하면 utf8이 엉망이 된다고 합니다
        $mail->CharSet = 'UTF-8';

        //발신자 이름(닉네임) 임의의 내용 설정, 수신자 메일의 발신자 이메일 주소 앞에 표시되는 발신자 이름
        $mail->FromName = $from_name;

        //smtp 로그인한 아이디 여기에 문자열 형식의 qq번호를 기입하시면 됩니다
        $mail->Username = '메일 보낼 편지함';

        //smtp 로그인 비밀번호 생성 인증번호 사용(아까 저장하라고 한 최신 인증번호만 해당)
        $mail->Password = '당신의 이메일 인증번호';

        //발신자 메일 주소 설정하기 위에 언급한 "발신자 메일"을 입력하십시오”
        $mail->From = '메일 보낼 편지함';

        //메일 본문이 HTML 인코딩인지 여부 여기에서는 메서드입니다. true나 false가 아닙니다
        $mail->isHTML(true);

        //수신자 메일 주소 설정 방법 첫 번째 인자는 수신자 메일 주소 두 번째 인자는 주소에 닉네임을 설정합니다 다른 메일 시스템은 자동으로 처리됩니다 두 번째 인자는 큰 의미가 없습니다
        $mail->addAddress($to, '');

        //여러 수신인을 추가하면 메서드를 여러 번 호출하면 됩니다
         //$mail->addAddress('xxx@163.com','소람');
		// $mail->addAddress('xxx@qq.com','샤오훙');
        //이 메일의 제목 추가
        $mail->Subject = $title;

        //메일 본문 위에 isHTML을 true로 설정하면 file_get_contents 함수를 사용하여 로컬 HTML 파일을 읽는 것과 같은 HTML 문자열이 됩니다.
        $mail->Body = $content;

        //메일에 첨부 파일을 추가하는 방법 첫 번째 매개 변수는 첨부 파일이 저장된 디렉토리(상대 디렉토리 또는 절대 디렉토리) 두 번째 매개 변수는 메일 첨부 파일의 이름입니다
        // $mail->addAttachment('./1.png,'그림');
        //이 방법은 여러 첨부 파일을 업로드하기 위해 여러 번 호출할 수 있습니다
        // $mail->addAttachment('./test.php','php文件');

        $status = $mail->send();

        //간단한 판단과 제시 정보
        if ($status) {
            return true;
        } else {
            return false;
        }
    }

위의 정보를 모두 기입하면 바로 메일을 발송할 수 있습니다

 

반응형