I'm trying to send a e-mail with the PHPmailer class, but the html i send, is empty, or the characters are unconfigured, and without accents.
<?php
header("Content-Type: text/html; charset=ISO-8859-1", true);
require_once('class.phpmailer.php');
include "config.php";
$nome = trim($_POST['nome']);
$email = trim($_POST['Imail']);
$usuario = trim($_POST['usuario']);
$senha = trim($_POST['senha']);
$mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch
$mail->IsSMTP(); // telling the class to use SMTP
try {
$mail->AddAddress($email, $nome);
$mail->SetFrom('[email protected]', 'Conectfarma');
$mail->AddReplyTo('[email protected]', 'Conectarma');
$subject = 'Guia Rápido de Interações Medicamentosas';
$sendsubject= "=?utf-8?b?".base64_encode($subject)."?=";
$mail->Subject = $sendsubject;
$mensagem = "<!DOCTYPE html>
<html>
<body>
Bem vindo ao Guia Rápido de Interações Medicamentosas em Neurologia e Psiquiatria
Seu Login e Senha para acesso ao aplicativo são:\n
Login:" .$nome. "\n, Senha : " .$senha.
"\nAtenciosamente,
Conectfarma Publicações CientÃficas
</body>
</html>";
$mail->Body = $mensagem;
//$mail->CreateBody($mensagem);
$mail->IsHTML(true);
$mail->Send();
//$mail->CharSet="UTF-8";
echo "<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>
<title>Confirmação</title>
</head>
<body>
Não vai maçã.
</body>
</html>
";
} catch (phpmailerException $e) {
echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
echo $e->getMessage(); //Boring error messages from anything else!
}
}
}
}
?>
I jumped the SMTP configuration because its working properly.
PHPMailer can use a non-local mail server (SMTP) if you have authentication. Further advantages include: It can print various kinds of error messages in more than 40 languages when it fails to send an email. It has integrated SMTP protocol support and authentication over SSL and TLS.
usually this happens because the sending server is already marked as spam by somebody. The way i found is go to the gmail account mark the item as 'important' in gmail and 'Add to Safe senders' in Outlook.
Its called SMTP Relays and it is defined on a per (sending) email basis but usually defaults to 250.
Double check Your PHP code is also in UTF-8 encoding.
Uncomment the line //$mail->CharSet="UTF-8";
and move it idealy right after the $mail = new PHPMailer(true);
, so the code would look like:
// ...
$mail = new PHPMailer(true);
$mail->CharSet = "UTF-8";
// ...
In Your code it is called after the $mail->Send();
thus the charset setting did not take in count...
Yes, right after the "new PHPMailer(true);". I had the same problem with:
$mail = new PHPMailer(true);
try {
$mail->setLanguage('fr', 'inc'.DIRECTORY_SEPARATOR.'PHPMailer'â¦);
$mail->CharSet = 'UTF-8';
and changing to:
$mail = new PHPMailer(true);
$mail->CharSet = 'UTF-8';
try {
$mail->setLanguage('fr', 'inc'.DIRECTORY_SEPARATOR.'PHPMailer'â¦);
solved the accents problem.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With