복붙노트

PHP 메일 : HTML을 보내는 방법?

PHP

PHP 메일 : 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. ==============================

    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. ==============================

    2.들어오는 메일의 헤더를 보았습니까? 그것은 말한다 :

    들어오는 메일의 헤더를 보았습니까? 그것은 말한다 :

    Reply-To: example@example.comContent-type: text/html

    다른 \ r \ n을 여기에 추가하기 만하면됩니다.

    Reply-To: " . $from . "\r\n";
    
  3. ==============================

    3.나는 이것을하기 위해 웹 전체에서 사용할 수있는 많은 무료 클래스 중 하나를 사용하여 스스로 혼란스럽게하는 것이 좋습니다.

    나는 이것을하기 위해 웹 전체에서 사용할 수있는 많은 무료 클래스 중 하나를 사용하여 스스로 혼란스럽게하는 것이 좋습니다.

    내가 권하고 싶습니다 : PHPMailer

  4. ==============================

    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. ==============================

    5.간단한 대답 :하지 마십시오. HTML 전자 메일은 악하고 짜증나게합니다. 적어도 적절한 일반 텍스트 버전이없는 경우. Proper = HTML 버전과 같은 동일한 정보, 다른 이메일 클라이언트 또는 웹에서 사용할 수있는 경우 html 버전에 대한 링크를 얻는 것에 대한 어리석은 주석이 아닙니다.

    간단한 대답 :하지 마십시오. HTML 전자 메일은 악하고 짜증나게합니다. 적어도 적절한 일반 텍스트 버전이없는 경우. Proper = HTML 버전과 같은 동일한 정보, 다른 이메일 클라이언트 또는 웹에서 사용할 수있는 경우 html 버전에 대한 링크를 얻는 것에 대한 어리석은 주석이 아닙니다.

    정말로 필요한 경우 : http://pear.php.net/package/Mail_Mime

  6. from https://stackoverflow.com/questions/4897215/php-mail-how-to-send-html by cc-by-sa and MIT license