2012-01-20 2 views
0

매우 혼란 스럽 습니다만, PHP를 통해 전자 메일을 보내려고합니다. 그러나 특정 메일 서버에 문제가 있습니다.(php) fsockopen 오류가 있지만 텔넷 연결이 작동합니다.

내가 시도 할 때 :

$smtp_conn = fsockopen('mail.onedomain.com',25,$errno,$errstr,30); 
echo $errno . '<br>' . $errstr; 

를 내가 얻을 :

110 
Connection timed out 

하지만 ...

내가> cmd를 시작하고 쓰기로 이동합니다

telnet mail.onedomain.com 25 

그리고 나는 얻는다 :

220 server1.onedomain.local Microsoft ESMTP MAIL Service Ready at Sat, 21 Jan 2012 00:05:04 +0100 

나는이 사실을 이해하지 못한다. 텔넷으로 연결을하고 있지만, 같은 매개 변수로 PHP에서 할 수 없다.

메일 서버의 구성이 잘못되었다고 생각되지만 문제는 어떻게 해결할 수 있습니까?

감사합니다. 카를.

+0

외에도 오류에서이 방법으로 받고 있습니다. "mail"PHP 함수 사용을 고려 했습니까? 당신이 뭔가 복잡한 것을 시도하고있는 것처럼 느껴집니다. –

+0

수동으로 SMTP 명령을 소켓에 쓰거나 PHP'mail'을 사용하는 것이 [SwiftMailer] (http://swiftmailer.org/)와 같이 고품질의 제 3 자 메일 링 라이브러리를 사용하는 것보다 객관적으로 나 빠집니다. – Charles

답변

0

부끄러운이 질문에 답을 얻지 못했습니다. 나는 똑같은 문제로 벽돌 벽에 머리를 두드렸다. Bash telnet은 정상적으로 작동했지만 PHP는 fscokopen에 막 실패했습니다.

해결 방법 : - CNAME 대신 서버 대신 ip를 사용하십시오.

그래서 대신

:

$smtp_conn = fsockopen('mail.onedomain.com',25,$errno,$errstr,30); 
echo $errno . '<br>' . $errstr; 

사용 :

$smtp_conn = fsockopen('000.000.000.000',25,$errno,$errstr,30); 
echo $errno . '<br>' . $errstr;