I need to send the following message via email using phpMailer: "Hello, [NAME]! There is a new protocol for document # [xxx]".
I was able to set everything up correctly, however the location for the name and number remain blank. I was able to rescue the two and put in variables, plus their values are not loaded in the message. Here's a snippet of code:
<tr>
<p> Olá, <?php echo $nome ?>! </p>
</tr>
<tr>
<p>
Há um novo protocolo referente ao documento nº <?php echo $controle ?>.
</p>
</tr>
The variable $nome
saves the name of the user who will receive the email and $ control the document control number.
This is the class that contains the send function using phpMailer:
class emailDAO {
function avisoProcesso($nome, $email, $controle){
$mensagem = "
<table width='800' hidden='300' xmlns=\"http://www.w3.org/1999/html\" border='no'>
<tr>
<img src='http://goo.gl/evcwLn'>
</tr>
<tr bgcolor='#E0E6F8' height='150'>
<p>
<b>
<h1>
Olá, <?php echo $nome ?>!
</h1>
</b>
</p>
<p>
Há um novo protocolo referente ao documento nº <?php echo $controle ?>.
</p>
</tr>
</table>";
$mail = new PHPMailer(); //
// Define o método de envio
$mail->Mailer = "smtp";
// Define que a mensagem poderá ter formatação HTML
$mail->IsHTML(true);
// Define que a codificação do conteúdo da mensagem será utf-8
$mail->CharSet = "utf-8";
// Define que os emails enviadas utilizarão SMTP Seguro tls
$mail->SMTPSecure = "tls";
// Define que o Host que enviará a mensagem é o Gmail
$mail->Host = "smtp.gmail.com";
//Define a porta utilizada pelo Gmail para o envio autenticado
$mail->Port = "587";
// Deine que a mensagem utiliza método de envio autenticado
$mail->SMTPAuth = "true";
// Define o usuário do gmail autenticado responsável pelo envio
$mail->Username = "[email protected]";
// Define a senha deste usuário citado acima
$mail->Password = "senha";
// Defina o email e o nome que aparecerá como remetente no cabeçalho
$mail->From = "[email protected]";
$mail->FromName = "Notificação";
// Define o destinatário que receberá a mensagem
$mail->AddAddress($email);
//Define o email que receberá resposta desta mensagem, quando o destinatário responder.
$mail->AddReplyTo("[email protected]", $mail->FromName);
// Assunto da mensagem
$mail->Subject = "DTEC - Nova Solicitação";
// Toda a estrutura HTML e corpo da mensagem do e-mail.
$mail->Body = $mensagem;
// Controle de erro ou sucesso no envio
if (!$mail->Send()){?>
<script>
alert("Houve um erro no envio do e-mail de cadastro, caso deseje pode fazer manualmente.");
</script>
<?php }else{ ?>
<script>
alert("Um e-mail foi enviado avisando sobre a criação deste protocolo.");
</script>
<?php }
}
Everything works perfectly, except for a blank space where I want the user name and control number of the document to appear.
The function is called at the end of the registration by sending the three parameters ($ name, $ email and $ control); I made the verification and all three variables receive the content correctly. However it does not display in the body of e-amyl.