Send e-mail with HTML code

Asked

Viewed 2,558 times

1

Good, I’m trying to send an email in PHP that is written with CKEDITOR, that is HTML. When the email is sent the HTML code appears in the email, I know it’s from the Headers but I’ve tried to put lots and none works.

Below follows my code to send the email.

function mail_users($titulo, $conteudo){
$query = mysql_query("SELECT `Email`, `Nome` FROM `utilizadores` WHERE `Newsletter` = 'Ativada'");
 while (($row = mysql_fetch_assoc($query)) !== false){
     $header .= "MIME-Version: 1.0\r\n";
     $header .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    email($row['Email'], $titulo, "Olá " . $row['Nome'] . ",\n\n" .  $conteudo, $header);
}
}

Solution found

function mail_users($titulo, $conteudo){
$query = mysql_query("SELECT `Email`, `Nome` FROM `utilizadores` WHERE `Newsletter` = 'Ativada'");

$header = "MIME-Version: 1.0\r\n";
$header .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$header .= "From: [email protected]\r\n";
$header .= "Return-Path: [email protected]\r\n";
while (($row = mysql_fetch_assoc($query)) !== false){

    mail($row['Email'], $titulo, "Olá " . $row['Nome'] . "," .  $conteudo, $header);
}
}
  • Are you sure you’re sending any HTML? Since Content-type is HTML o and n is not, I believe it is not interpreted as line breaking, try replacing it with <br><br>.

  • 1

    Luis, please post the solution as an Answer below.

1 answer

5


Send this email with Phpmailer, is very easy to implement and does not lack example:

<?php
//Site: http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/
include "class.phpmailer.php"; //caminho do arquivo da classe do phpmailer

$mail = new PHPMailer();
$mail->IsSMTP(); // send via SMTP
$mail->Host = "mail.seudominio"; //Endereço do seu Servidor de Email
$mail->SMTPAuth = true; // true se o email é autenticado
$mail->Username = "usuario@seudominio"; // Seu endereço de email que envia os email
$mail->Password = "000000"; // senha do usuário que envia o email
$mail->From = "de@seudominio"; a pessoa que ta enviando o email

$mail->FromName = "remetente"; Nome de quem ta enviando...
$mail->AddAddress("email@destinatario","Nome do Destinatario ");
$mail->AddAddress("email@destinatario"); // (opcional) só o envio pelo email
$mail->AddReplyTo("[email protected]","Nome do Destinatario para quem ira a resposta");

$mail->WordWrap = 50; // Quebra de linha
$mail->IsHTML(true); // Se for true é enviando email no formato HTML
$mail->Subject = "Assunto da mensagem "; //Assunto do seu Email
$mail->Body = "Conteúdo da mensagem HTML"; //Conteudo HTML
$mail->AltBody = "Para mensagens somente texto"; //Somente Texto

//Enviando o Email e tento a confirmação se foi ou não ...
if(!$mail->Send())
{
    echo "Aconteceu algum problema no envio da Mensagem: ";
    echo "Mailer Error: " . $mail->ErrorInfo;
} else {
    echo "E-mail enviado com sucesso...";
}

More Examples:

Browser other questions tagged

You are not signed in. Login or sign up in order to post.