1
Staff need to send the following message by e-mail using phpmailer: "Hello, [NAME]! There is a new protocol regarding document no [xxx]".
I was able to configure everything right, however the location assigned to the name and the number remain blank. I was able to rescue both and put in variables, but their values are not loaded in the message. Follow a code snippet:
<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 sending 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, but for a blank space where I want the user name and the document control number to appear.
The function is called at the end of the registration sending the three parameters ($name, $email and $control); I checked and the three variables receive the content correctly. However it does not display in the body of e-amil.
Where was defined
$nome
?– rray
Put your code in full. It will help you better visualize the problem
– Victor Eyer
In the code above just change
Olá, <?php echo $nome ?>!
forOlá, ".$nome."!
anddocumento nº <?php echo $controle ?>.
fordocumento nº ".$controle."
- The problem is that you are already trying to do more complex things without having learned the basics about variables and strings. I would suggest reading the PHP manual calmly and doing some exercises without skipping steps, for a better use of the language. On the knowledge necessary to resolve this issue, here is a good start: http://php.net/manual/en/language.types.string.php– Bacco