2017-02-01 4 views
2

우분투 포럼뿐만 아니라 스택 오버플로도 검색했습니다. 나는 웹 사이트를 작성 중이며 LAMP 서버를 사용하여 직접 호스팅하고 있습니다. 나는 사용자가 작성한 양식을 가지고 있으며 사용자가 제출 버튼을 클릭하면 이메일을 보내주기를 원합니다. 지금까지 나는 sendmail, ssmtp, phpmailer를 시도했고 mailutils를 설치하고 postfix를 사용했다. 메일 프로그램에서 문제가 있다고 생각하는 이유는 테스트를 한 후에 코드에서 오류가 없으며 명령 줄에서 메일을 보낼 수 없기 때문입니다. 필자는 phpmailer를 사용하지 않기를 희망합니다. 웹 사이트의 암호가 손상되는 것을 원하지 않기 때문입니다. 누군가가 나에게 줄 수있는 도움을 주시면 감사하겠습니다. 구성 파일이 필요한 경우 메일 스크립트를 포함 시켰습니다. 미리 감사드립니다.PHP로 메일 보내기에 어려움이 있습니다

<?php 
session_start(); 

if(isset($_POST['submit'])){ 
    $to = "[email protected]"; // this is your Email address 
    $from = $_POST['email']; // this is the sender's Email address 
    $first_name = $_POST['first_name']; 
    $last_name = $_POST['last_name']; 
    $subject = "Website Email"; 
    $message = $first_name . " " . $last_name . " wrote the following:" . "\n\n" . $_POST['message']; 

    $type = 'plain'; // or HTML 
    $charset = 'utf-8'; 

    $_SESSION['from'] = $_POST['email']; 
    $_SESSION['first_name'] = $_POST['first_name']; 
    $_SESSION['last_name'] = $_POST['last_name']; 
    $_SESSION['message'] = $_POST['message']; 

    $headers = 'MIME-Version: 1.0' . "\r\n"; 
    $headers .= 'Content-type: text/plain; charset=utf-8' . "\r\n"; 
    $headers .= 'To: ' . $to . '<' . $to . '>' . "\r\n"; 
    $headers .= 'From: ' . $from . '<' . $from . '>' . "\r\n"; 

    if($first_name == NULL || $last_name == NULL || $from == NULL || $message == NULL){ 
     header("Location: mailError.php"); 
     die(); 
    } 
    else{ 
     //$headers2 = "From:" . $to; 
     mail($to,$subject,$message,$headers); 
     header("Location: thanksPage.php"); 
     //mail($from,$subject2,$message2,$headers2); // sends a copy of the message to the sender 
     //echo "Mail Sent. Thank you " . $first_name . ", we will contact you shortly."; 
    } 
} 
?> 
+0

서버에 메일 서버가 구성되어 있습니까? 'mail()'이 메일 서버로 메일을 전달한다는 것을 기억하십시오. 실제로는 메일을 보내지 않습니다. – RiggsFolly

+0

PHP 용 Google Mail API를 사용해 보셨나요? 그것은 빠르고 편리합니다. 자세한 내용은 다음 링크를 참조하십시오. https://cloud.google.com/appengine/docs/php/mail/ – Rishi

+1

또는 거의 유비 쿼터스 인'phpMailer' https://github.com/PHPMailer/PHPMailer가 있습니다. 메일 서버를 설치하고 유지하기 위해 – RiggsFolly

답변

0

로컬 호스트를 사용하여 메일을 보내면 메일을 보내지 않습니다. 라이브 서버가 필요합니다.

+0

나는 단지 sendmail이나 postfix를 설치하거나 속임수를 쓰거나 서버의 php.ini 나 메일 설정 파일을 변경해야 할 필요가 있음을 알고있다. – JMaggsDF

+0

mail()이 작동하고, 몇 가지 예를 참조하거나 phpmailer와 같은 세 번째 partty 소프트웨어를 사용할 수 있습니다. – Tosif