2009-10-23 7 views
0

SMTP를 통해 전자 메일을 보내려고하면 작동하지 않는 데 어떤 도움이됩니까?전자 메일 : SMTP 및 PHP

//SMTP info 
$host = "smtp.gmail.com"; 
$username = "[email protected]"; 
$password = "password"; 
$from = "Taylor";//From email address 
$to = "[email protected]";//Change this to your inbox 


$headers = array ('From' => $from, 'To' => $to, 'Subject' => $subject); 
// HTML email 
//$headers .= "MIME-Version: 1.0" . "\r\n"; 
//$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n"; 

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

//Send to you 
$mail = $smtp->send($to, $headers, $message); 
if (PEAR::isError($mail)) { 
    echo("<h1>** Whoops! Error!. **</h1> <p>Please call us instead.</p>"); 
    echo("<p>" . $mail->getMessage() . "</p>"); 
} else { 
    echo("<h1>Thank you for your inquiry!</h1> <p>Thank you for signing up for our event. Your request for our guestlist has been received. Please check your email for the confirmation.</p> "); 
} 

답변

2

PHP 로그를 확인하고 오류가보고되었는지 확인하십시오. 구문이 옳다.

+0

어떻게 할 수 있습니까? 답 : – user195257

+0

PHP 환경 변수를보고 로그 위치를 찾고 텍스트 뷰어로 엽니 다. 끝까지 스크롤하면 일부 오류가 기록되어야합니다. 당신이 윈도우에 있다면 C : \ PHP5 \ Logs \에 있고 리눅스에서는/var/log /에있을 수 있습니다. – Scooterville

1

귀하의 $에서 문제가 발생한 것 같습니다. 정확한 이메일 주소가 아닙니다. 실제 주소로 변경하거나 모두 생략하십시오.

+0

고마워, 그랬어,하지만 didnt 일 – user195257

0

google documentation은 SMTP 서버에 연결하기 위해 포트 465 또는 587을 사용해야한다고 말합니다. Mail_smtp은 기본적으로 25 개를 사용합니다. 'port'매개 변수를 사용하여 465 또는 587의 명시적인 값을 시도하십시오.

$smtp = Mail::factory(
    'smtp', 
    array('host' => $host, 
      'port' => 465,  // explicit port 465 or 587 
      'auth' => true, 
      'username' => $username, 
      'password' => $password), 
); 
+0

고마워,하지만 그것은 작동하지 않았다 : S – user195257

+0

또한 다음 사이트에서보세요, 그것은 "인증 SMTP를 사용하여 보내기"아래에 smtp.gmail.com와 함께 작동해야합니다 예를 가지고있다 " (이상하게도 포트 25를 사용합니다) : http://www.phpmaniac.net/wiki/index.php/Pear_Mail – Inshallah

0

올바른 이메일 주소가 아닌 것 같습니다. 이것을 "[email protected]"의 행을 따라 더 많은 것으로 대체 할 수 있습니다.

그러나 표준 PHP SMTP 라이브러리는 거의 성공하지 못했기 때문에 항상 오픈 소스 phpmailer을 사용합니다. 그것은 쉽고, HTML과 일반 텍스트 모두를 전송하여 문제가 발생하면 매우 유용한 오류 메시지를 생성합니다.

행운을 빈다.

+0

안녕하세요, 저는 시도했는데, 주소가 잘못되었음을 말할 때마다 오류가 발생했습니다. googlemail 주소였습니다. – user195257

0

많은 ISP는 자체 SMTP 서버를 사용하고 다른 SMTP 서버를 차단해야합니다.