2012-06-18 2 views
1

SMTP 인증 이메일을 보내려면 배 메일 확장자를 사용하고 싶습니다. 웹에서 많은 예제가 있습니다 ...이 내 코드입니다 :이 샘플의 오류 사례를 테스트하고 싶었 유효하지 않은 무언가에 SMTP 사용자를 변경하고, 그래서 스크립트는 잘 작동배 메일은 잘못된 smtp 사용자와 함께 메일을 보냅니다.

<?php 
require_once "Mail.php"; 

$body = "Testtext"; 
$subject = "SMTP Testmail"; 
$mail_to = "[email protected]"; 
$mail_from = "[email protected]"; 

//SMTP Verbindungsdaten 
$host = "valid.smtp.com"; 
$username = "[email protected]"; 
$password = "validpasswordforotheruser"; 

$smtp = Mail::factory('smtp', 
array (
'host' => $host, 
//'auth' => true, 
'auth' => true, 
'username' => $username, 
'password' => $password 
)); 

$headers = array (
'From' => $mail_from, 
'To' => $mail_to, 
'Subject' => $subject 
); 
$mail = $smtp->send($mail_to, $headers, $body); 

if (PEAR::isError($mail)) { 
echo "Error during sending E-Mail : ". $mail->getMessage(); 
} 
?> 

그 창문이 작동 했어. 나는 내 우편물을 가지고있다.

어떻게 될 수 있습니까?

인사말

이 편집 : 내가 지금 다른 테스트를 수행하고 유효하지 않은 뭔가 SMTP 서버를 변경 ... 문서는 "PEAR_MAIL_SMTP_ERROR_CONNECT"오류 ... 내가지고있어이 있어야한다는 말 다음 출력 : "fsockopen() [function.fsockopen] : 연결할 수 없습니다 xx.xx.xx.xxx:25 (연결이 거부되었습니다) /usr/local/lib/php/Net/Socket.php on line 108 "

"Catchable fatal error : PEAR_Error 클래스의 객체를 222 행의 /usr/local/lib/php/Net/SMTP.php에있는 문자열로 변환 할 수 없습니다 "

이 IP는 smtp 이름이 유효하지 않을 때 어디에서 오는가? 서버가 모든 구성에 의해 과당 될 수 있습니까?

답변

2

이것은 SMTP 서버가 로그인 데이터의 유효성을 검사하지 않음을 의미합니다. 인증을 전혀 요구하지 않거나 SMPT 이후 POP를 지원할 수도 있습니다. 즉, POP3 서버를 인증 한 IP가 최근에 SMTP 서버에서 인증을 요구하지 않는 경우입니다.

서버을 항상 인증해야하는 것으로 변경해보십시오 (예 : Gmail의 SMTP.

+0

서버는 웹 호스팅 업체에서 제공하는 것으로 알고 있습니다 ... 익명 액세스가 가능할 수도 있습니다 (그러나 나는 놀랐습니다). 어쨌든 ... PHP 메일이나 폴백 메일을 대체 메일로 사용하는 배 메일에는 마법적인 대체 수단이 없습니다. 오류 케이스를 테스트 할 수있는 아이디어가 있습니까? (나는 "send"에서 오류를 얻고 싶다) –

+0

아무것도하지 않고 오류로 응답하는 가짜 smtp 서버를 시작하는 것이 가장 좋은 방법이다. – ThiefMaster

+0

지금은 작동하는 것 같습니다 ... 답변 해 주셔서 감사합니다! –

관련 문제