2012-12-08 2 views
-2

아무도 여기에 어떤 오류가 보일지 궁금해서 코드가 실행되지만 전자 메일을받지 못했습니다.PHP 이메일을 보내고 있지 않습니다

$to = $_POST['to_email']; 
$subject = $_POST['subject']; 
$message='<p><b>Message:</b> '.str_replace("\n.", "\n..", $_POST['message']).'</p>'; 

$headers = "From: " . strip_tags($_POST['from_email']) . "\r\n"; 
$headers .= "Reply-To: ". strip_tags($_POST['from_email']) . "\r\n". 
     'X-Mailer: PHP/' . phpversion(); 

mail($to, $subject, $message, $headers); 
+0

스팸 폴더를 확인하십시오. –

+0

/var/log/mail.log 또는/var/log/syslog 파일을 확인하십시오. 5 월 더 많은 정보를 제공 할 수 있습니다. – dAm2K

+0

sendmail (또는 설치 한 mta)을 직접 사용해 보셨습니까? 시스템에 MTA가 잘못 구성되거나 누락되었을 수 있습니다. –

답변

0

을 확인 일 ini 당신의 PHP에 액세스 할 수있는 경우가

작동하지 않습니다 구성되어있는 경우.

PHP가 할 수있는 일이 많습니다. 가장 일반적인 방법은 메일을 로컬 메일 서버에 대기 시키거나 (Linux의 경우 일반, Windows의 경우 덜 사용) 외부 메일 릴레이와 통화하고 메일을 대기열에 넣습니다 드문 공개 릴레이가 아니면 인증이 필요합니다. 파일에 쓸 수도 있습니다.

경고가없는 경우 mail() 함수는 전자 메일이 php.ini 파일에 지정된 위치에 대기 중임을 보증합니다.

먼저 할 일은 당신이해야 할 다음 일은 이메일이 어떻게 구성되어 있는지 확인하려면 php.ini 설정을 확인입니다 ...

$Success = @mail($to, $subject, $message, $headers); 
if(!$Success) { 
    print "Failed to queue email"; 
} 

메일이 성공을보고 확인합니다. 올바른 자격 증명이있는 유효한 메일 서버를 가리키는 지 확인하십시오. 당신이 리눅스에있어 및 postfix 같은 로컬 메일 서버를 사용하는 경우, 옵션은 Windows에서만 사용할 수 있습니다대로 (배포판에 따라 /etc/init.d/postfix status 같은) @FlorianKasper에서 언급 한 바와 같이

, SMTP를 실행중인 있는지 확인합니다. 사용중인 OS를 정확히 명확히 할 수 있다면 우리는 더 많은 것을 도와 줄 수있을 것입니다.

+0

SMTP 용 PHP ini sais :; Windows 전용 유닉스 기반 시스템에서는 sendmail/something simmilar 명령을 사용해야합니다. http://php.net/manual/de/mail.configuration.php#ini.smtp –

+0

사실이긴하지만 내 대답이 정확하지 않다는 것을 알지 못합니다. ? OP는 운영체제를 지정하지 않았고, Windows 서버에 로컬 메일 서버를 사용하는 것도 가능합니다. 예를 들어 [xmailserver] (http://www.xmailserver.org/) – Basic

+0

을 설치하면 그럴 수 있습니다. 공격 한 –

1

mail() 함수는 sendmail unix/linux 명령을 사용하여 메일을 전송합니다. 잘못된 당신이 PHP의 설정에 따라 달라집니다 [메일] 섹션

smtp = SMTPSERVER (windows) 
smtp_port = 25 (Windows) 
sendmail_path= (unix) 
관련 문제