2014-04-22 2 views
0

저는 joomla를 사용하고 특히 확장 소스 태그를 사용하여 기존 기사에 코드를 추가합니다.joomla에서 PHP 메일 기능이 작동하지 않습니다.

나는 이메일을 통해 결과를 다시 사용자에게 보내는 questionaire를 만들고 있습니다.

문제는 PHP 메일 기능이 작동하지 않아서 그 이유를 파악할 수 없다는 것입니다.

<?php 

ini_set('display_errors',1); 
ob_start(); 
if(isset($_POST['btnSubmit'])) { 
if(isset($_POST['contact_name']) && isset($_POST['contact_email']) && isset($_POST['q1']) && isset($_POST['q2']) && isset($_POST['q3'])) { 

$contact_name = $_POST['contact_name']; 
$contact_email = $_POST['contact_email']; 
} 
if(!empty($contact_name) && !empty($contact_email)) { 
if (strlen($contact_name)<35 && strlen($contact_email)<50) { 

echo $contact_name; 
echo '<br>'; 
echo $contact_email; 
echo '<br>'; 

$q1 = $_POST['q1']; 
if ($q1 == 1) {$q1a = "Blank Answer A";} ; 
if ($q1 == 2) {$q1a = "Blank Answer B";} ; 
if ($q1 == 3) {$q1a = "Blank Answer C";} ; 
echo $q1a; 
echo '<br>'; 

$q2 = $_POST['q2']; 
if ($q2 == 1) {$q2a = "Blank Answer A";} ; 
if ($q2 == 2) {$q2a = "Blank Answer B";} ; 
if ($q2 == 3) {$q2a = "Blank Answer C";} ; 
echo $q2a; 
echo '<br>'; 

$q3 = $_POST['q3']; 
if ($q3 == 1) {$q3a = "Blank Answer A";} ; 
if ($q3 == 2) {$q3a = "Blank Answer B";} ; 
if ($q3 == 3) {$q3a = "Blank Answer C";} ; 
echo $q3a; 
echo '<br>'; 

$to = $contact_email; 
$subject = 'Your questionnaire results'; 
$message = 'This is a test email'."\n\n".'Hope you got it.'; 
$headers = 'From: [email protected]'; 

      if (@mail($to, $subject, $message, $headers)) { 
       echo 'Your results have been sent by email.'; 

exit();    

       } else { 
        echo 'There was an error sending your results.'; 
       } 

} 
else { 
echo 'Error: Max length of name or e-mail field exceeded.'; 
} 
} else { 
echo "Error: Missing Fields"; 
} 
} 

?> 


<form name="frm1" action="8-beginners" method="POST"> 

Name:<br> <input type="text" name="contact_name" id="contact_name" maxlength="34" ><br><br> 
E-Mail Address:<br> <input type="text" name="contact_email" id="contact_email" maxlength="49" ><br><br> 
question 1:<br> 
<input type="radio" name="q1" value="1" /> Answer 1<br> 
<input type="radio" name="q1" value="2" /> Answer 2<br> 
<input type="radio" name="q1" value="3" /> Answer 3<br><br> 
question 2:<br> 
<input type="radio" name="q2" value="1" /> Answer 1<br> 
<input type="radio" name="q2" value="2" /> Answer 2<br> 
<input type="radio" name="q2" value="3" /> Answer 3<br><br> 
question 3:<br> 
<input type="radio" name="q3" value="1" /> Answer 1<br> 
<input type="radio" name="q3" value="2" /> Answer 2<br> 
<input type="radio" name="q3" value="3" /> Answer 3<br> <br> 
<br> 
<input type="submit" name="btnSubmit" value="Submit Form" /> 
</form> 

답변

0

이 코드가 로컬 호스트 또는 서버에 :

여기 내 코드입니까? localhost의 경우 - 로컬 smtp를 시작 했습니까?

메일 기능에서 remove @로 시작하여 오류가 발생했는지 확인합니다.

+0

경고 : mail() : "localhost"포트 25에서 mailserver에 연결하지 못했습니다. php.ini에서 "SMTP"및 "smtp_port"설정을 확인하거나 D : \ Website \에서 ini_set() TLSS_SAEA \ pascal \ plugins \ system \ sourcerer \ helper.php (564) : 49 행의 런타임 작성 함수 결과를 보내는 중에 오류가 발생했습니다. 이름 : – user3561887

+0

예, 로컬 smtp 서버를 가지고 있지 않습니다. 테스트 메일 서버 도구가 설치되어있는 경우 http://www.toolheap.com/test-mail-server-tool/ windows php.ini를 편집하고 smtp 값을 SMTP = 127.0.0.1 및 smtp_port = 25로 설정하고 apache를 다시 시작하십시오. 그리고 완료 :) –

+0

로컬 smtp 서버 ... joomla 있고 이미 smtp 설정이있는 웹 사이트에? – user3561887

관련 문제