제목 | smtp_sock를 이용한 외부 메일 서버로 전송시 전송여부를 판단하려면 ? | ||
---|---|---|---|
카테고리 | PHP | ||
글쓴이 | 람이 | 작성시각 | 2017/01/09 15:07:32 |
|
|||
function sendmail($name, $from, $to, $subject, $body, $html, $charset ) { $smtp_server = "smtp.yourip.com"; //enter your smtp server here $smtp_user = "yourusername"; //enter your smtp username here if (!$smtp_sock = fsockopen("$smtp_server", 25)) { die ("Couldn't open mail connection to $smtp_server! \n"); } fputs($smtp_sock, "HELO $smtp_server\n"); fputs($smtp_sock, "VRFY $stmp_user\n"); fputs($smtp_sock, "MAIL FROM:$from\n"); fputs($smtp_sock, "RCPT TO:$to\n"); fputs($smtp_sock, "DATA\n"); fputs($smtp_sock, "From: $name<$from>\n"); fputs($smtp_sock, "X-Mailer: miplus\n"); if ($html) fputs($smtp_sock, "Content-Type: text/html;"); else fputs($smtp_sock, "Content-Type: text/plain;"); fputs($smtp_sock, "charset=$charser\n"); fputs($smtp_sock, "MIME-Version: 1.0\n"); fputs($smtp_sock, "Subject: $subject\n"); fputs($smtp_sock, "To: $to\n"); fputs($smtp_sock, "$body"); fputs($smtp_sock, "\n.\nQUIT\n"); fclose($smtp_sock); } $name = "보내는 사람 이름"; $from = "보내는 사람 이메일 주소"; $to = "받는 사람 이메일 주소"; $subject = "제목"; $body = "내용"; $html = "html 사용여부(1:사용, 0:사용안함)"; $charset = "UTF-8"; sendmail($name, $from, $to, $subject, $body, $html, $charset);
이와 같은 소스가 있는데요... 여기서 서버가 연결되었냐 아니냐는 판단이 되지만, 이메일이 잘 갖는지는 알 수 없는 것 같아서...
외부 서버메일을 사용해서 메일을 전송하는데... 혹시, 위 소스에서 메일 전송이 정상적으로 발송되었는지 알 수 있는 방법은 없을까요 ? 지금 문제가 되는 도메인의 maillog (외부 서버)를 확인해 보니
Jan 9 16:02:58 localhost sendmail[8431]: v091tS5g006242: to=user@user.com, delay=05:07:30, xdelay=00:00:00, mailer=esmtp, pri=674891, relay=next.net.user.com., dsn=4.0.0, stat=Deferred: next.net.user.com.: No route to host
굵게 칠한 부분이 문제인듯 한데ㅠ.ㅜ 이렇게 나오는데.... 이런것들을 에러로 처리하려고 합니다. 그냥 메일이 갔다, 안갔다만 나와도 됩니다.
|
|||
다음글 | 젠킨스 관련 질문입니다. (3) | ||
이전글 | 한테이블에 레코드가 많으면 어떻게 처리해야하나요? (2) | ||
변종원(웅파)
/
2017/01/09 16:29:59 /
추천
0
|
람이
/
2017/01/09 16:49:06 /
추천
0
웅파님 감사합니다. 일단, 적용은 해 봐야 겠네요.... 적용해서 테스트를 해 보겠습니다. 적용해 보니 No route to host 인데도 성공으로 나오네요.. ㅠ.ㅜ 확실한 방법은 없나 보네요 ㅠ.ㅜ |
변종원(웅파)
/
2017/01/10 10:04:13 /
추천
1
람이/ 메일 간단한게 아닙니다. ㅎㅎ 지금 받은 리턴은 내가 보냈다 입니다. 난 에러가 없다이고 조금 있다가 상대쪽에서 리턴이 옵니다. 그걸 케치해야 정확한 에러를 잡을 수 있습니다. |
람이
/
2017/01/11 10:59:24 /
추천
0
웅파님 도움 감사드립니다. 구글링을 더 해 보니까.. 그렇더라구요... 젠장 ㅠ.ㅜ
혹시,
위 소스상에서 파일을 첨부하는 방법 아시나요 ㅋ????
구글링 하러갑니다. |
$return = fputs($smtp_sock, "\n.\nQUIT\n");
리턴 값으로 판단할 수는 있지만 100% 정확하지는 않습니다. (true 나왔다고 100% 전달된게 아니기 때문에 그렇습니다)