동일한 스크립트로 제출시 html 양식에서 PHP로 이메일 전송
PHP동일한 스크립트로 제출시 html 양식에서 PHP로 이메일 전송
사용자가 HTML 양식을 채운 다음 양식에서 정보를 전자 메일로 보내면 PHP로 전자 메일을 보내려고합니다. 양식이있는 웹 페이지를 표시하는 동일한 스크립트에서이 작업을 수행하려고합니다.
이 코드를 발견했지만 메일이 보내지지 않습니다.
<?php
if (isset($_POST['submit'])) {
$to = $_POST['email'];
$subject = $_POST['name'];
$message = getRequestURI();
$from = "zenphoto@example.com";
$headers = "From:" . $from;
if (mail($to, $subject, $message, $headers)) {
echo "Mail Sent.";
}
else {
echo "failed";
}
}
?>
PHP로 이메일을 보내는 코드는 무엇입니까?
해결법
-
==============================
1.내가 올바르게 이해하면, 한 페이지에 모든 것을 가지고 동일한 페이지에서 실행하기를 원합니다.
내가 올바르게 이해하면, 한 페이지에 모든 것을 가지고 동일한 페이지에서 실행하기를 원합니다.
다음 코드를 사용하여 단일 페이지에서 메일을 보낼 수 있습니다 (예 : index.php 또는 contact.php).
이 질문과 본래의 대답 사이의 유일한 차이점은 작업이 비어있는
-
==============================
2.Windows에서 PHP를 통해 이메일을 보내면 잡초와 머리가 긁힌 지뢰밭이됩니다. IIS (Internet Information Services) 인터넷 정보 서비스 웹 서버에서 Windows 7 및 PHP 5.2.3에서 작동하도록 한 인스턴스를 안내하려고합니다.
Windows에서 PHP를 통해 이메일을 보내면 잡초와 머리가 긁힌 지뢰밭이됩니다. IIS (Internet Information Services) 인터넷 정보 서비스 웹 서버에서 Windows 7 및 PHP 5.2.3에서 작동하도록 한 인스턴스를 안내하려고합니다.
CodeIgniter 또는 Symfony와 같이 전자 메일 전송 기능이 포함 된 사전 구축 된 프레임 워크를 사용하고 싶지 않다고 가정합니다. 독립 실행 형 PHP 파일에서 전자 메일을 보내 드리겠습니다. 나는 codeigniter hood (system / libraries 아래)에서이 코드를 가져 와서이 Email.php 파일에 넣을 수 있도록 수정했다.
이것은 최신 버전의 PHP에서 작동합니다. 그러나 당신은 결코 알지 못합니다.
1 단계 : SMTP 서버에 사용자 이름 / 비밀번호가 필요합니다.
이미 smtp.ihostexchange.net에서 smtp 서버를 사용하고 있습니다.이 서버는 이미 만들어져 있고 저를 위해 설치되었습니다. 이걸 가지고 있지 않으면 계속할 수 없습니다. Thunderbird, 진화, Microsoft Outlook과 같은 전자 메일 클라이언트를 사용하여 smtp 서버를 지정하고 전자 메일을 보낼 수 있어야합니다.
2 단계, Hello World 이메일 파일 만들기 :
나는 당신이 IIS를 사용하고 있다고 가정합니다. 그래서 C : \ inetpub \ wwwroot 아래에 index.php 파일을 만들고이 코드를 거기에 넣으십시오 :
<?php include("Email.php"); $c = new CI_Email(); $c->from("FromUserName@foobar.com"); $c->to("user_to_receive_email@gmail.com"); $c->subject("Celestial Temple"); $c->message("Dominion reinforcements on the way."); $c->send(); echo "done"; ?>
브라우저에서 localhost / index.php로 이동하여 index.php를 방문 할 수 있어야합니다. Email.php가 없기 때문에 오류가 발생합니다. 그러나 적어도 브라우저에서 실행할 수 있는지 확인하십시오.
3 단계, Email.php라는 파일을 만듭니다.
C : \ inetpub \ wwwroot 아래에 Email.php라는 새 파일을 만듭니다.
이 PHP 코드를 Email.php에 복사 / 붙여 넣기하십시오 :
https://github.com/sentientmachine/standalone_php_script_send_email/blob/master/Email.php
smtp 서버는 여러 종류가 있으므로 Email.php 상단의 설정을 수동으로 조작해야합니다. 나는 그것이 자동으로 smtp.ihostexchange.net과 함께 작동하도록 설정했지만 smtp 서버는 다를 수 있습니다.
예 :
링크 된 코드는 너무 길어서 stackoverflow 답변으로 붙여 넣을 수 없습니다. 편집하려면 여기 또는 github을 통해 주석을 남겨 두십시오. 그러면 변경할 것입니다.
4 단계, php.ini의 ssl 확장 기능이 활성화되어 있는지 확인하십시오 :
PHP.ini 파일을 찾아서 주석 처리를 제거하십시오.
;extension=php_openssl.dll
그래서 그것은 다음과 같습니다.
extension=php_openssl.dll
5 단계, 방금 브라우저에서 만든 index.php 파일을 실행하십시오.
다음과 같은 결과가 나옵니다.
220 smtp.ihostexchange.net Microsoft ESMTP MAIL Service ready at Wed, 16 Apr 2014 15:43:58 -0400 250 2.6.0 <534edd7c92761@summitbroadband.com> Queued mail for delivery lang:email_sent done
6 단계, 이메일 및 스팸 폴더를 확인하십시오.
user_to_receive_email@gmail.com에 대한 이메일 계정을 방문하면 이메일을 받았을 것입니다. 5 ~ 10 초 내에 도착해야합니다. 그렇지 않으면 페이지에 표시된 오류를 검사하십시오. 그래도 작동하지 않는다면 외치면서 키보드의 키보드에서 얼굴을 으깨세요. "식료품 가게에서 일하는 것이 그렇게 나쁘지 않습니다."
-
==============================
3.아직 php.ini 파일을보고 [mail function] 설정 아래의 매개 변수가 올바르게 설정되어 있는지 확인하십시오. PHPMailer 라이브러리를 사용하고 지침을 따르십시오.
아직 php.ini 파일을보고 [mail function] 설정 아래의 매개 변수가 올바르게 설정되어 있는지 확인하십시오. PHPMailer 라이브러리를 사용하고 지침을 따르십시오.
-
==============================
4.당신은 또한 PHP로 메일을 보내려면 만돌린 응용 프로그램을 사용할 수 있습니다. 보내 주신 이메일 및 기타 세부 정보에 대한 자세한 정보는 https://mandrillapp.com/api/docs/index.php.html에서 얻을 수 있습니다.
당신은 또한 PHP로 메일을 보내려면 만돌린 응용 프로그램을 사용할 수 있습니다. 보내 주신 이메일 및 기타 세부 정보에 대한 자세한 정보는 https://mandrillapp.com/api/docs/index.php.html에서 얻을 수 있습니다.
-
==============================
5.다음과 같이 액션을 폼에 추가해야합니다.
다음과 같이 액션을 폼에 추가해야합니다.
<form name='form1' method='post' action='<?php echo($_SERVER['PHP_SELF']);'> <!-- All your input for the form here --> </form>
그런 다음 스 니펫을 문서 맨 위에 놓고 메일을 보냅니다. 무슨 echo ($ _ SERVER [ 'PHP_SELF']); 당신의 정보를 당신의 스크립트의 맨 위로 보내어 당신이 그것을 사용할 수 있도록하는 것입니다.
-
==============================
6.다음은 내가 사용하는 PHP 메일 설정입니다.
다음은 내가 사용하는 PHP 메일 설정입니다.
//Mail sending function $subject = $_POST['name']; $to = $_POST['email']; $from = "zenphoto@example.com"; //data $msg = "Your MSG <br>\n"; //Headers $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=UTF-8\r\n"; $headers .= "From: <".$from. ">" ; mail($to,$subject,$msg,$headers); echo "Mail Sent.";
-
==============================
7.다음을 위해 SMTP 서버가 필요합니다.
다음을 위해 SMTP 서버가 필요합니다.
... mail($to,$subject,$message,$headers);
일하다.
당신은 xmailer와 같은 경량 SMTP 서버를 시도 할 수 있습니다.
-
==============================
8.원본 코드에서 한 가지 오류가있을 수 있다고 생각합니다.
원본 코드에서 한 가지 오류가있을 수 있다고 생각합니다.
$message = echo getRequestURI();
대신에:
$message = getRequestURI();
(코드는 이후 편집되었습니다.)
from https://stackoverflow.com/questions/18379238/send-email-with-php-from-html-form-on-submit-with-the-same-script by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
ajax 요청을 사용하여 파일 다운로드 (0) | 2018.09.06 |
---|---|
잘못된 문자열 오프셋 경고 PHP (0) | 2018.09.06 |
게시물 요청의 크기 제한은 얼마입니까? (0) | 2018.09.06 |
간단한 PHP 페이지 매김 스크립트 [닫힌] (0) | 2018.09.06 |
어떻게 PHP에서 주어진 키의 값으로 연관 배열의 배열을 정렬? (0) | 2018.09.06 |