2013-02-06 2 views
2

PHP 응용 프로그램에서 전자 메일을 보내려합니다. 이를 위해 Windows 서버 2008에 IIS의 웹 사이트를 설정했습니다. Windows SMTP 서버를 설치할 수 있습니까?전자 메일 보내기 SMTP 서버가있는 PHP (Windows Server 2008)

은 그 때 나는 이메일을 보내 테스트 페이지를 만들 :

<?php 
    Ini_set ('SMTP', 'localhost'); 
    Ini_set ('sendmail_from', '[email protected]'); 

    $to = '[email protected]'; 
    $subject = 'Example subject'; 
    $body = 'body ... With an example'; 

    if(mail($to, $subject, $body)){ 
    echo "Successful"; 
    }else{ 
    echo "Error"; 
    } 
?> 
나는 또한이 같은 IIS에서 php.ini 파일 및 SMTP 전자 메일을 구성

:

[Mail function] 
smtp = localhost 
smtp_port = 25 

가 그럼 난 내 전송 테스트하라 우편. 전자 메일을 로컬 도메인의 전자 메일 주소로 로컬 도메인의 다른 전자 메일 주소로 보내면 나는 "성공"내 페이지를 백업하고 전자 메일 폴더에 이동 :

단점으로
C:\inetpub\mailroot\Drop 

, 내가 외부 도메인으로 로컬 도메인의 이메일 주소에 이메일 주소에서 이메일을 보내는 경우 (@ hotmail.com) . 내 페이지가 "오류"를 반환하고 아무 일도 일어나지 않습니다.

내 SMTP 서버의 로그 파일을 확인하지만 오류 메시지는 표시되지 않습니다.

도와 주시겠습니까?

+0

SMTP 서버가 외부 도메인의 전자 메일을 릴레이하도록 구성되지 않았을 수 있습니다. 'display_errors' 설정을 활성화하고 PHP가 오류를보고하는지보십시오. –

+0

어떻게 릴레이를 구성합니까? – Florent

답변

0

페이지가 오류 (대부분 500 일 가능성이 있음)와 함께 반환되는 경우 SMTP 오류 로그와 별도로 PHP 오류 로그를 살펴야합니다. PHP 메일 기능을 실행하는 동안 발생한 오류가 해당 로그에 표시되므로 사용자가 찾은 것을 알려주십시오.

+0

mail() 함수가 false를 반환하면 "Error"가 표시됩니다. 그래서 그는 단지 내 페이지에 "오류"를 표시합니다. PHP 오류 로그도 표시되지만 오류는 없습니다. – Florent

1

단계를 성공적으로 완료했습니다. 이제 로컬 도메인의 전자 메일 주소에서 외부 도메인 (@ hotmail.com)의 전자 메일 주소로 전자 메일을 보내면 메일이 내 PHP 페이지로 보내지고 대기열에 갇히게됩니다. C:\inetpub\mailroot\Queue.

누구에게 무슨 문제가 있는지 알고 있나요?

고맙습니다.

관련 문제