PHP: Html send email in html format

≡放荡痞女 提交于 2019-12-20 03:24:13

问题


I am following a tutorial http://css-tricks.com/sending-nice-html-email-with-php/ to send mail in html format.

My string looks like

$message = '<html><body>';
$message .= '<img src="http://css-tricks.com/examples/WebsiteChangeRequestForm/images/wcrf-header.png" alt="Website Change Request" />';
$message .= '<table rules="all" style="border-color: #666;" cellpadding="10">';
$message .= "<tr style='background: #eee;'><td><strong>Dear:</strong> </td><td>" . strip_tags($part_name). "</td></tr>";
$message .= "<tr><td><strong>.$user_name.has fixed an appointment with you on  :</strong> </td><td>" . strip_tags($time). "</td></tr>";
$message .= "<tr><td><strong>In:</strong> </td><td>" .  strip_tags($meeting_name) . "</td></tr>";
$message .= "<tr><td><strong>Please click on:</strong> </td><td><a href=" . strip_tags($approve_url). "</a> To approve</td></tr>";
$message .= "</table>";
$message .= "</body></html>";

//   CHANGE THE BELOW VARIABLES TO YOUR NEEDS

$subject = 'Appointment Request ';

$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

But the received mail is not html formatted it is looking like

<html>
    <body>
        <img src="http://css-tricks.com/examples/WebsiteChangeRequestForm/images/wcrf-header.png" alt="Website Change Request" />
        <table rules="all" style="border-color: #666;" cellpadding="10">
            <tr style='background: #eee;'>
                <td>
                    <strong>Dear:</strong> 
                </td>
                <td>Depu</td>
            </tr>
            <tr>
                <td>
                    <strong>.pandit.has fixed an appointment with you on  :</strong> 
                </td>
                <td>
                </td>
            </tr>
            <tr>
                <td>
                    <strong>In:</strong>
                </td>
                <td>anyp</td>
            </tr>
            <tr>
                <td>
                    <strong>Please click on:</strong>
                </td>
                <td>
                    <a href=http://192.168.0.178/UI/user/approvemeeting.php?meetingid=REG_939300945&key=3107</a> To approve
                </td>
            </tr>
        </table>
    </body>
</html>

Please tell me what i am doing wrong why the mail is not coming html formatted


回答1:


Use PHPMailer instead.

It allows you to send SMTP and normal emails (PHP's mail() function or expliciting all the SMTP params), and most important it lets you sepecify HTML message, plain text alternative message (but don't specify it otherwise some clients won't display the HTML one, such as bloody Lotus Notes).

It allows you to specify headers, mime, etc...

http://phpmailer.worxware.com/




回答2:


From:

$SMTPMail = new SMTPClient ($SmtpServer, $SmtpPort, $SmtpUser, $SmtpPass, 'info@myserver.com', $pr_email, $subject, $message); $SMTPChat = $SMTPMail->SendMail(); 

You are never sending in the $headers var as such the email has no headers and as such the MIME type will not be read by the mail client on the other end.

I do not understand the SMTPClient class and judging form the tutorial I recommend you prolly shouldn't use it since it is opening a socket directly to the SMTP server. Also this class does not actually support custom headers which sucks. mail() will use your default SMTP server.



来源:https://stackoverflow.com/questions/12035742/php-html-send-email-in-html-format

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!