Programming/PHP / / 2022. 12. 7. 15:19

외부 SMTP를 이용해서 메일 보내기 - 2(feat. PHPMailer)[추가@20230412]

728x90

PHPMailer-5.2.11.zip
0.22MB

혹시 몰라 제가 테스트 페이지에서 사용한 버전을 업로드하였습니다.

자신이 사용 중인 php 버전에 맞게 다운로드하시면 됩니다.

$mail->Host, Port, Username, Password

여기에는 사용하려는 SMTP 서비스에서 제공하는 정보를 입력하시면 됩니다.

네이버(네이버 웍스 아닙니다)의 경우 아이디만 써도 되고 아이디@naver.com 이렇게 메일 주소를 다 쓰셔도 되구요.

$mail->setfrom('이메일 주소', '이름');

여기에서 이메일은 바로 위 Username과 같게 써야 합니다(네이버는 아이디@naver.com). 물론 이름 부분은 달라도 됩니다만 메일 계정이 다를 경우 발송이 안 됩니다. 그리고 이름은 생략하셔도 메일은 발송됩니다. 생략했을 경우 메일 주소가 이름에 들어가도록 설정되어 있습니다.

$mail->addaddress('받는 사람 이메일 주소', 받는 사람 이름');

보이는 그대로 받는 사람 이메일 주소와 이름(생략 가능)을 입력하면 됩니다.

 

[참고1]setfrom, subject, addaddress, msghtml, send는 전체를 소문자로 해도 작동합니다. 검색을 해보면 어디엔 Send() 어디엔 send() 이렇게 되어 있습니다. 근데 둘 다 작동하니 아무 거나 쓰셔도 됩니다.

[참고2]Could not authenticate / the client was not authenticated 이런 오류 메시지가 나온다면 가장 먼저 확인하셔야 할 게 smtp host, port, username, password 이 4가지입니다. 지금 위에 써놓은 코드는 작동이 현재까지는 정상적으로 되는 것입니다.

[참고3]실제로 홈페이지에 적용할 땐 위에 $mail->SMTPDebug = 3이라고 된 부분을 주석으로 막으세요. 로그가 잔뜩 튀어나옵니다.

[참고4]코드 상에서 주석으로 막아둔 내용은 굳이 사용을 안 하셔도 됩니다. 우리나라에서 지메일, 네이버, 다음처럼 사람들이 좀 많이 사용하는 데는 위 주석을 안 풀어도 됩니다. 문제는 계속 정보를 맞게 썼는데도 계속 smtp 접속이 안 되는 경우가 있습니다. 이럴 때 주석을 풀어서 자신이 쓰는 smtp 서버에 맞게 수정해 보세요.

반응형