smtpSendMail - PHP SMTP 를 이용한 메일 보내기 라이브러리
smtpSendMail - PHP SMTP 를 이용한 메일 보내기 라이브러리
REDINFO
약 2년전 2022-02-06 19:55:43

smtpSendMail 

 

본 라이브러리는 PHP SMTP 를 이용한 메일 발송 프로그램입니다. 

 

smtpSendMail 라이브러리 개발은 22년 8월로 종료되었습니다.  multiSendMail 라이브러리를 이용해 주세요.

 
multiSendMail- PHP 를 이용한 심플한 메일 발송 라이브러리 - R BLOG
multiSendMail    본 라이브러리는 PHP의 SMTP  와 기본 MAIL 함수를 이용한 메일 발송 프로그램입니다.        기본적으로 메일 발송시 PHP 에서 제공되는 mail 함수도 있지만 이는 비인증 방식으로 발송이 되기 때문에 서버 SPF 설정 및 화··· - R BLOG
blog.redinfo.co.kr/post/view?pid=116

 

 

기본적으로 메일 발송시 PHP 에서 제공되는 mail 함수도 있지만 이는 비인증 방식으로 발송이 되기 때문에 서버 SPF 설정 및 화이트도메인 설정이 안될 경우 스팸메일로 걸려지는 경우가 많다.

(mail 함수 사용시에는 발송 서버 아이피와 도메인 네임서버의 SPF설정 그리고 화이트도메인까지 등록된다면 SMTP 를 이용하지 않고도 원할한 발송이 가능하다. )

 

그래서 해결책으로 나온게 SMTP를 이용한 발송이며 이는 메일 서버내 계정을 통해 발송이 되기때문에 스팸으로 걸려질 우려는 거의 없다.  

 

이번에 만든 라이브러리는 내 기준으로 본다면 커스텀 하기도 쉽기때문에 환경이 안맞을 경우 수정해서 사용하기 용이하다. 

 

안내

본 라이브러리 보다 개선된 mlultiSendMail 라이브러리가 추가되었습니다. 

 

자세한 내용은 아래 포스팅을 확인 주세요. 

 

 
multiSendMail- PHP 를 이용한 심플한 메일 발송 라이브러리 - R BLOG
multiSendMail    본 라이브러리는 PHP의 SMTP  와 기본 MAIL 함수를 이용한 메일 발송 프로그램입니다.        기본적으로 메일 발송시 PHP 에서 제공되는 mail 함수도 있지만 이는 비인증 방식으로 발송이 되기 때문에 서버 SPF 설정 및 화··· - R BLOG
blog.redinfo.co.kr/post/view?pid=116

버전

1.0  (PHP 7 이상에서 개발)

 배포일

2022-02-03

 이력

  • ~2015-06-04 - sendmail.php 로 최종수정
  • 2022-02-06 - smtpSendMail.php 로 신규등록
  • 2022-03-09 - 465 포트일시 host 에 ssl 자동붙이기 추가
  • 2022-08-10 - Daum, Gamil 오류 수정
 다운로드 smtpSendMail.zip
코멘트
2022-08-10

Daum, Gmail 전송 시 오류가 있어 수정하였습니다. 

급하게 보정 된거라 아직 테스트가 많이 필요한점 양해 부탁드립니다. 

 

추가로 2중인증이 되어있을 경우 앱 전용 비밀번호를 발급받으셔서 

SMTP 비밀번호를 교체해 주셔야합니다. 

 

 

2022-03-09

465 포트설정시 안된다는 문의가 많아 SMTP 내 HOST설정 시 465일 경우 자동으로 ssl:// 이 붙도록 업데이트했습니다.

 

기본적으로 포트가 465일경우 ssl://{SMTP 호스트} 형태로 입력해 주셔야합니다.  

 

 

예제

<?php 
    // 로드할 프로그램 경로(경로에 맞게 수정하세요)
    $libLoad = $_SERVER['DOCUMENT_ROOT']."/smtpSendMail.php";
    include_once $libLoad;

    // 환경설정 - 기본
    $config = array(
        'host'=>'SMTP 호스트 주소', // SMTP 호스트 주소
        'smtp_id'=>'SMTP 아이디', //SMTP 아이디
        'smtp_pw'=>'SMTP 비밀번호', //SMTP 비밀번호
        'port'=>'SMTP 포트(25 또는 465 또는 587)', //SMTP 포트
        'debug'=>1, // 디버그 , 0: 미사용, 1: 사용
        'msg'=>1, // 메시징뷰 , 0: 미사용, 1: 사용
        'charset'=>'UTF-8', // SMTP 언어셋
        'ctype'=>'text/html', // SMTP 내용 컨텐츠타입        
    );


    /*
    // 네이버 일경우 
    $config = array(
        'host'=>'smtp.naver.com', // SMTP 호스트 주소 (465포트는 SSL보안서버 적용으로 -> 본래는 이렇게 해주어야함 ssl://smtp.naver.com)
        'smtp_id'=>'naver1devgroup', //SMTP 아이디
        'smtp_pw'=>'naver1devgroup', //SMTP 비밀번호
        'port'=>'465', //SMTP 포트
        'debug'=>1, // 디버그 , 0: 미사용, 1: 사용
        'msg'=>1, // 메시징뷰 , 0: 미사용, 1: 사용
        'charset'=>'UTF-8', // SMTP 언어셋
        'ctype'=>'text/html', // SMTP 내용 컨텐츠타입        
    );
    */

    // 메일 라이브러리 초기화
    $ssm = new smtpSendMail($config);


    // 메일 발송데이터
    $parmData = array(
        'to'=>'lcy@redinfo.co.kr',
        'from'=>'webmaster@redinfo.co.kr',
        'name'=>'REDINFO',
        'subject'=>'제목',
        'body'=>'내용',
        'cc'=>'',
        'bcc'=>''
    );

    // 파일첨부 
    $ssm->attach($_SERVER['DOCUMENT_ROOT']."/파일1.zip","파일1.zip"); 
    $ssm->attach($_SERVER['DOCUMENT_ROOT']."/파일2.zip","파일2.zip");

    // 메일 발송
    $ssm->send_mail($parmData);    

 ※ 참고

  • 저작권 (없음)
    • 수정, 재배포 가능 
    • 단, 상단에 라이선스 주석 삭제 금지 (라이선스 표기) 
  • 기타
    • 개발소스는 퍼가고 사용하면 그만이겠지만, 시간을 투자하여 만든 개발자를 배려한다면 주석은 반드시 표시했으면 합니다. 

 

 

이 포스트글이 도움이 되었나요?
9
카테고리 연관글

Comment

댓글작성

0(500) | 1(30)