PHPmailer Sending HTML Code

PHPmailer sending HTML CODE

Calling the isHTML() method after the instance Body property (I mean $mail->Body) has been set solved the problem for me:

$mail->Subject = $Subject;
$mail->Body = $Body;
$mail->IsHTML(true); // <=== call IsHTML() after $mail->Body has been set.

Send html emails using PHPMailer and html templates

Using ob_start

ob_start();
include 'htmlemail.php';
$body = ob_get_clean();

Or

You can also use a templating method to generate the email body for multiple uses.

E.g.

In your html template, have variables assigned like this:

Thank you {NAME} for contacting us.

Your phone number is {PHONE}

Then before calling your phpmailer, create an array to process the email body:

$email_vars = array(
'name' => $_POST['name'],
'phone' => $_POST['phone'],
);

And finally, with phpmailer...

$body = file_get_contents('htmlemail.phtml');

if(isset($email_vars)){
foreach($email_vars as $k=>$v){
$body = str_replace('{'.strtoupper($k).'}', $v, $body);
}
}

This way your emails will have all the dynamic content you need in the body.

Sending information from an HTML page with PHP Mailer

Bonjour Seazy. This won't work:

$mail->MsgHTML($_POST['name']); 
$mail->MsgHTML($_POST['prenom']);
$mail->MsgHTML($_POST['email']);
$mail->MsgHTML($_POST['message']);

You will end up with a message that contains only what's in the message field, and msgHTML, won't be much help here. Keeping it simple, you need to do something like this (using a plain-text message):

$mail->Body = <<<EOT
{$_POST['name']}
{$_POST['prenom']}
{$_POST['email'])}
{$_POST['message']}
EOT;

It looks like you've based your code on a very old example, so take a look at the contact form example provided with PHPMailer.

If you instead want to include these values in a template, you need to look at loading those template files using PHP's output buffering and include statement, along the lines of:

ob_start();
include 'template.php';
$html = ob_get_contents();
ob_end_clean();
$mail->msgHTML($html);

Send phpmailer email with html code

There are several possible solutions to this.

To send only plain text, just do this:

$mail->isHTML(false);

and do not put anything in $mail->AltBody. That way the message will be sent as plain text, even if it contains HTML markup.

If you only want part of your message body to escape HTML rendering, you can either use htmlspecialchars or wrap that portion of your markup in <pre> tags.

Applying htmlspecialchars to the whole message body is a bit pointless as it achieves a similar looking result to isHTML(false), but far less efficiently.

Send with phpmailer a script in php $mail- Body = $PHPorHTML;

Simple :

$htmlContent = file_get_contents("email_template.html"); // Here add location of file.
mail($htmlContent, ); // Add rest of contents that you want to send.

Phpmailer sending email as plain text to emails

The issue was solved by enabling smtp login details



Related Topics



Leave a reply



Submit