PHP 메일 : HTML을 보내는 방법?
PHPPHP 메일 : HTML을 보내는 방법?
아래의 코드는 본문에 대해 이메일을 올바르게 전송하는 것입니다. 메시지 본문에 html을 표시해야하며 작성할 수 없습니다. 웹에있는 예제는 이메일을 보내지 않습니다.
HTML 코드를 전자 메일로 전송하도록 코드를 수정하려면 어떻게해야합니까?
엄청 고마워!
<?php
$to = 'mymail@mail.com';
$subject = 'I need to show html';
$from ='example@example.com';
$body = '<p style=color:red;>This text should be red</p>';
ini_set("sendmail_from", $from);
$headers = "From: " . $from . "\r\nReply-To: " . $from . "";
$headers .= "Content-type: text/html\r\n";
if (mail($to, $subject, $body, $headers)) {
echo("<p>Sent</p>");
} else {
echo("<p>Error...</p>");
}
?>
해결법
-
==============================
1.이 헤더를 메일에 사용하십시오.
이 헤더를 메일에 사용하십시오.
$header = "MIME-Version: 1.0\r\n"; $header .= "Content-type: text/html; charset: utf8\r\n";
콘텐츠 / 본문 :
<html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> ... ... ...
인라인 CSS 명령을 사용하는 것이 중요하며 인터페이스 용 테이블을 사용하는 것이 좋습니다.
...
메일 본문에서 머리와 본문으로 HTML 코드를 입력해야합니다.
-
==============================
2.들어오는 메일의 헤더를 보았습니까? 그것은 말한다 :
들어오는 메일의 헤더를 보았습니까? 그것은 말한다 :
Reply-To: example@example.comContent-type: text/html
다른 \ r \ n을 여기에 추가하기 만하면됩니다.
Reply-To: " . $from . "\r\n";
-
==============================
3.나는 이것을하기 위해 웹 전체에서 사용할 수있는 많은 무료 클래스 중 하나를 사용하여 스스로 혼란스럽게하는 것이 좋습니다.
나는 이것을하기 위해 웹 전체에서 사용할 수있는 많은 무료 클래스 중 하나를 사용하여 스스로 혼란스럽게하는 것이 좋습니다.
내가 권하고 싶습니다 : PHPMailer
-
==============================
4.나는 이것이 잘 작동하는 것을 발견했다!
나는 이것이 잘 작동하는 것을 발견했다!
출처
<?php //define the receiver of the email $to = 'youraddress@example.com'; //define the subject of the email $subject = 'Test HTML email'; //create a boundary string. It must be unique //so we use the MD5 algorithm to generate a random hash $random_hash = md5(date('r', time())); //define the headers we want passed. Note that they are separated with \r\n $headers = "From: webmaster@example.com\r\nReply-To: webmaster@example.com"; //add boundary string and mime type specification $headers .= "\r\nContent-Type: multipart/alternative; boundary=\"PHP-alt-".$random_hash."\""; //define the body of the message. ob_start(); //Turn on output buffering ?> --PHP-alt-<?php echo $random_hash; ?> Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Hello World!!! This is simple text email message. --PHP-alt-<?php echo $random_hash; ?> Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: 7bit <h2>Hello World!</h2> <p>This is something with <b>HTML</b> formatting.</p> --PHP-alt-<?php echo $random_hash; ?>-- <? //copy current buffer contents into $message variable and delete current output buffer $message = ob_get_clean(); //send the email $mail_sent = @mail( $to, $subject, $message, $headers ); //if the message is sent successfully print "Mail sent". Otherwise print "Mail failed" echo $mail_sent ? "Mail sent" : "Mail failed"; ?>
-
==============================
5.간단한 대답 :하지 마십시오. HTML 전자 메일은 악하고 짜증나게합니다. 적어도 적절한 일반 텍스트 버전이없는 경우. Proper = HTML 버전과 같은 동일한 정보, 다른 이메일 클라이언트 또는 웹에서 사용할 수있는 경우 html 버전에 대한 링크를 얻는 것에 대한 어리석은 주석이 아닙니다.
간단한 대답 :하지 마십시오. HTML 전자 메일은 악하고 짜증나게합니다. 적어도 적절한 일반 텍스트 버전이없는 경우. Proper = HTML 버전과 같은 동일한 정보, 다른 이메일 클라이언트 또는 웹에서 사용할 수있는 경우 html 버전에 대한 링크를 얻는 것에 대한 어리석은 주석이 아닙니다.
정말로 필요한 경우 : http://pear.php.net/package/Mail_Mime
from https://stackoverflow.com/questions/4897215/php-mail-how-to-send-html by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
PHP 오류 : 헤더 정보를 수정할 수 없습니다 - 이미 보낸 헤더 [duplicate] (0) | 2018.09.20 |
---|---|
preg_replace에서 html 태그를 무시하십시오. (0) | 2018.09.20 |
PHP에서 XML 파일의 속성 값을 가져 오는 방법은 무엇입니까? (0) | 2018.09.20 |
다차원 배열 값에 액세스하기 (0) | 2018.09.20 |
pdo - 멤버 함수 호출 prepare () 비 - 객체 [duplicate] (0) | 2018.09.20 |