program story

PHP를 통해 이메일로 HTML을 보내시겠습니까?

inputbox 2020. 12. 14. 08:09
반응형

PHP를 통해 이메일로 HTML을 보내시겠습니까?


PHP를 사용하여 사진과 함께 HTML 형식의 이메일을 보내려면 어떻게해야합니까? 일부 설정이있는 페이지와 이메일을 통해 주소로 전송되는 HTML 출력을 갖고 싶습니다. 어떻게해야합니까? 가장 큰 문제는 파일을 첨부하는 것인데 어떻게 할 수 있습니까?


매우 간단합니다. 이미지를 서버에 남겨두고 PHP + CSS를 그들에게 보냅니다.

$to = 'bob@example.com';

$subject = 'Website Change Reqest';

$headers = "From: " . strip_tags($_POST['req-email']) . "\r\n";
$headers .= "Reply-To: ". strip_tags($_POST['req-email']) . "\r\n";
$headers .= "CC: susan@example.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";

$message = '<p><strong>This is strong text</strong> while this is not.</p>';


mail($to, $subject, $message, $headers);

메일러와 수신자에게 이메일에 해석해야 할 잘 구성된 HTML이 포함되어 있음을 알리는 것은 다음 줄입니다.

$headers .= "Content-Type: text/html; charset=UTF-8\r\n";

여기 내가 정보를 얻은 링크입니다 .. ( 링크 ... )

그래도 보안이 필요합니다 ...


이미지의 절대 경로를 사용하여 HTML을 코딩해야합니다. By Absolute path는 서버에 이미지를 업로드해야하며 이미지 src속성에 이와 같이 직접 경로를 제공해야 함을 의미합니다 <img src="http://yourdomain.com/images/example.jpg">.

다음은 참조 용 PHP 코드입니다.-http://www.php.net/manual/en/function.mail.php에서 가져온 것입니다 .

<?php
// multiple recipients
$to  = 'aidan@example.com' . ', '; // note the comma
$to .= 'wez@example.com';

// subject
$subject = 'Birthday Reminders for August';

// message
$message = '
  <p>Here are the birthdays upcoming in August!</p>
';

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";

// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";


// Mail it
mail($to, $subject, $message, $headers);
?>

이 코드가 있으며 내 사이트에서 완벽하게 실행됩니다.

  public function forgotpassword($pass,$name,$to)
    {
        $body ="<table  width=100% border=0><tr><td>";
        $body .= "<img width=200 src='";
        $body .= $this->imageUrl();
        $body .="'></img></td><td style=position:absolute;left:350;top:60;><h2><font color = #346699>PMS Pvt Ltd.</font><h2></td></tr>";
        $body .='<tr><td colspan=2><br/><br/><br/><strong>Dear '.$name.',</strong></td></tr>';
        $body .= '<tr><td colspan=2><br/><font size=3>As per Your request we send Your Password.</font><br/><br/>Password is : <b>'.$pass.'</b></td></tr>';
        $body .= '<tr><td colspan=2><br/>If you have any questions, please feel free to contact us at:<br/><a href="mailto:support@pms.com" target="_blank">support@pms.com</a></td></tr>';
        $body .= '<tr><td colspan=2><br/><br/>Best regards,<br>The PMS Team.</td></tr></table>';
        $subject = "Forgot Password";
        $this->sendmail($body,$to,$subject);
    }

메일 기능

   function sendmail($body,$to,$subject)
        {
            //require_once 'init.php';


            $from='testing@gmail.com';      
            $headersfrom='';
            $headersfrom .= 'MIME-Version: 1.0' . "\r\n";
            $headersfrom .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
            $headersfrom .= 'From: '.$from.' '. "\r\n";
            mail($to,$subject,$body,$headersfrom);
        }

이미지 URL 기능은 하나의 기능으로 변경 한 이미지를 변경하려는 경우에 사용합니다. 비밀번호를 잊어 버림과 같은 많은 메일 기능이 있습니다.

function imageUrl()
    {
        return "http://".$_SERVER['SERVER_NAME'].substr($_SERVER['SCRIPT_NAME'], 0, strrpos($_SERVER['SCRIPT_NAME'], "/")+1)."images/capacity.jpg";
    }

html 이메일을 보내는 것은 php를 사용하여 일반 이메일을 보내는 것과 크게 다르지 않습니다. 추가해야 할 것은 php mail () 함수의 헤더 매개 변수에 따른 내용 유형입니다. 여기에 예가 있습니다.

<?php
    $to = "toEmail@domain.com";
    $subject = "HTML email";
    $message = "
    <html>
    <head>
    <title>HTML email</title>
    </head>
    <body>
    <p>A table as email</p>
    <table>
    <tr>
    <th>Firstname</th>
    <th>Lastname</th>
    </tr>
    <tr>
    <td>Fname</td>
    <td>Sname</td>
    </tr>
    </table>
    </body>
    </html>
    ";
    // Always set content-type when sending HTML email
    $headers = "MIME-Version: 1.0" . "\r\n";
    $headers .= "Content-type:text/html;charset=UTF-8" . "\r\b";
    $headers .= 'From: name' . "\r\n";
    mail($to,$subject,$message,$headers);
?>

여기 에서 w3schools의 자세한 설명을 확인할 수도 있습니다.


PHP를 통해 HTML 콘텐츠가 포함 된 이메일을 쉽게 보낼 수 있습니다. 다음 스크립트를 사용하십시오.

<?php
$to = 'user@example.com';
$subject = "Send HTML Email Using PHP";

$htmlContent = '
<html>
<body>
    <h1>Send HTML Email Using PHP</h1>
    <p>This is a HTMl email using PHP by CodexWorld</p>
</body>
</html>';

// Set content-type header for sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";

// Additional headers
$headers .= 'From: CodexWorld<info@codexworld.com>' . "\r\n";
$headers .= 'Cc: welcome@example.com' . "\r\n";
$headers .= 'Bcc: welcome2@example.com' . "\r\n";

// Send email
if(mail($to,$subject,$htmlContent,$headers)):
    $successMsg = 'Email has sent successfully.';
else:
    $errorMsg = 'Email sending fail.';
endif;
?>

Source code and live demo can be found from here - Send Beautiful HTML Email using PHP


Simplest way is probably to just use Zend Framework or any of the other frameworks like CakePHP or Symphony.

You can do it with the standard mail function too, but you'll need a bit more knowledge on how to attach pictures.

Alternatively, just host the images on a server instead of attaching them. Sending HTML mail is documented in the mail function documentation.


Use PHPMailer,

To send HTML mail you have to set $mail->isHTML() only, and you can set your body with HTML tags

Here is a well written tutorial :

rohitashv.wordpress.com/2013/01/19/how-to-send-mail-using-php/


The trick is to know the content id of the Image mime part when building the html body part. It boils down to making the img tag

https://github.com/horde/horde/blob/master/kronolith/lib/Kronolith.php

Look at the function buildMimeMessage for a working example.

참고URL : https://stackoverflow.com/questions/11238953/send-html-in-email-via-php

반응형