How do I send an email?

Asked

Viewed 104 times

-3

I’m using this code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
if($_POST)
{
require("phpmailer/class.phpmailer.php"); //Importa a class php mailer
$phpmail = new PHPMailer(); // faz uma instância da classe PHPMailer
$erros = "";

if(empty($_POST['nome'])){
 $erros .= "O nome deve ser preenchido.";
}

if(empty($_POST['email']) ){
  $erros .= "O E-mail deve ser preenchido.";
}else{
  $email = $_POST['email'];
  eregi("([\._0-9A-Za-z-]+)@([0-9A-Za-z-]+)(\.[0-9A-Za-z\.]+)",$email,$match);
if(!isset($match)){
   $erros .= "O e-mail informado é inválido.";
}
}

if(empty($_POST['assunto'])){
$erros .= "A assunto deve ser preenchido.";
}
if(empty($_POST['mensagem'])){
$erros .= "A mensagem deve ser preenchida.";
}

if( empty($erros) ){
$phpmail->IsSMTP(); // Define que a mensagem será SMTP
$phpmail->Host = "msa-shared.infolink.com.br"; // Endereço do servidor SMTP, não altere esse campo.
$phpmail->SMTPAuth = true; // ativando a autenticação SMTP (obrigatório, não alterar)
$phpmail->Username = '[email protected]'; // usuário de smtp Usuário do servidor SMTP (endereço de email), altere para suas informações.
$phpmail->Password = 'senhadoemaildomeusite'; // Senha do servidor SMTP (senha do email usado), altere para suas informações
$phpmail->Port = 587; //Porta de envio de SMTP (obrigatório, não alterar)
$phpmail->From = "[email protected]"; //Utilize o mesmo usuário do campo username, altere para suas informações
$phpmail->FromName = "[email protected]"; //tem que ser o mesmo usuário do campo username, altere para suas informações


$phpmail->AddAddress('[email protected]', 'Nome do Destinatário'); //E-mail que irá receber a mensagem
$phpmail->AddCC('[email protected]', 'Copia');  //E-mail que irá receber a cópia da mensagem
$phpmail->AddBCC('[email protected]', 'Copia Oculta'); //E-mail que irá receber a cópia oculta da mensagem

$phpmail->IsHTML(true); // Define que o e-mail será enviado como HTML
$phpmail->CharSet = 'UTF-8'; // Charset da mensagem


$phpmail->Subject  = "Formulário de Contato"; // Assunto da mensagem
$phpmail->Body .= "\r\n Nome: ".$_POST['nome'].""; // Texto da mensagem
$phpmail->Body .= "\r\n E-mail: ".$_POST['email'].""; // Texto da mensagem
$phpmail->Body .= "\r\n Telefone: ".$_POST['telefone'].""; // Texto da mensagem
$phpmail->Body .= "\r\n Assunto: ".$_POST['assunto'].""; // Texto da mensagem
$phpmail->Body .= "\r\n Mensagem: ".nl2br($_POST['mensagem']).""; // Texto da mensagem

//Envio da Mensagem
$enviado = $phpmail->Send();

//Limpa os destinatários
$phpmail->ClearAllRecipients();
$phpmail->ClearAttachments();

//Exibe uma mensagem de resultado
if ($enviado) {
echo "E-mail enviado com sucesso!";
} else {
echo "Não foi possível enviar o e-mail." . $mail->ErrorInfo;
}
} else {
echo $erros;
}
}
?>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Formulário de Contato</title>
<style type="text/css">
#contato {
font-family: verdana, tahoma, sans-serif;
}

#contato input, #contato textarea {
font-family: verdana, tahoma, sans-serif;
padding: 6px;
width: 200px;
}
</style>
</head>

<body>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" id="contato">
<fieldset>
<legend>Formulário de Contato</legend>

   <label>Seu nome:</label><br />
<input name="nome" type="text" value="<?php echo $nome ?>" /><br /><br />

<label>Seu email:</label><br />
<input name="email" type="text" value="<?php echo $email ?>" /><br /><br />

<label>Assunto:</label><br />
<input name="assunto" type="text"  value="<?php echo $assunto ?>" /><br /><br />

<label>Mensagem:</label><br />
<textarea name="mensagem" rows="10"  value="<?php echo $mensagem ?>"></textarea><br /><br />

<input name="submit" type="submit" value="Enviar" style="width: auto;" />
</fieldset>
</form>
</body>
</html>

This Phpmailer: Phpmailer

I just replace the fields that should be replaced, but when sending, nothing happens, not even an error message. The page is empty. Why?

Note: I am trying to send by localhost.

  • 3

    What have you tried? Have you looked at the tag you have selected? http://answall.com/questions/tagged/phpmailer

  • ereg__* was deprecated => http://answall.com/a/11873/91 correct this error as well.

1 answer

1

What is the Phpmailer?
Phpmailer is a class ready to send emails via PHP via SMTP connection widely used around the world. Its sending method is widely recommended and superior, compared to mail(), PHP’s default function.

First of all: download Phpmailer. > http://sourceforge.net/projects/phpmailer/files/ Create a folder called phpmailer in your hosting area. Then locate the class.phpmailer.php file and send it to the previously created phpmailer folder. Create a file with the . php extension with the name of your preference (e.g. formulario.php) and paste the code below:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
if($_POST)
{
require("phpmailer/class.phpmailer.php"); //Importa a class php mailer
$phpmail = new PHPMailer(); // faz uma instância da classe PHPMailer
$erros = "";
 
if(empty($_POST['nome'])){
 $erros .= "O nome deve ser preenchido.";
}
 
if(empty($_POST['email']) ){
  $erros .= "O E-mail deve ser preenchido.";
}else{
  $email = $_POST['email'];
  eregi("([\._0-9A-Za-z-]+)@([0-9A-Za-z-]+)(\.[0-9A-Za-z\.]+)",$email,$match);
if(!isset($match)){
   $erros .= "O e-mail informado é inválido.";
}
}
 
if(empty($_POST['assunto'])){
$erros .= "A assunto deve ser preenchido.";
}
if(empty($_POST['mensagem'])){
$erros .= "A mensagem deve ser preenchida.";
}
 
if( empty($erros) ){
$phpmail->IsSMTP(); // Define que a mensagem será SMTP
$phpmail->Host = "msa-shared.infolink.com.br"; // Endereço do servidor SMTP, não altere esse campo.
$phpmail->SMTPAuth = true; // ativando a autenticação SMTP (obrigatório, não alterar)
$phpmail->Username = '[email protected]'; // usuário de smtp Usuário do servidor SMTP (endereço de email), altere para suas informações.
$phpmail->Password = 'DigiteSuaSenha'; // Senha do servidor SMTP (senha do email usado), altere para suas informações
$phpmail->Port = 587; //Porta de envio de SMTP (obrigatório, não alterar)
$phpmail->From = "[email protected]"; //Utilize o mesmo usuário do campo username, altere para suas informações
$phpmail->FromName = "[email protected]"; //tem que ser o mesmo usuário do campo username, altere para suas informações
 
 
$phpmail->AddAddress('[email protected]', 'Nome do Destinatário'); //E-mail que irá receber a mensagem
$phpmail->AddCC('[email protected]', 'Copia');  //E-mail que irá receber a cópia da mensagem
$phpmail->AddBCC('[email protected]', 'Copia Oculta'); //E-mail que irá receber a cópia oculta da mensagem
 
$phpmail->IsHTML(true); // Define que o e-mail será enviado como HTML
$phpmail->CharSet = 'UTF-8'; // Charset da mensagem
 
 
$phpmail->Subject  = "Formulário de Contato"; // Assunto da mensagem
$phpmail->Body .= "\r\n Nome: ".$_POST['nome'].""; // Texto da mensagem
$phpmail->Body .= "\r\n E-mail: ".$_POST['email'].""; // Texto da mensagem
$phpmail->Body .= "\r\n Telefone: ".$_POST['telefone'].""; // Texto da mensagem
$phpmail->Body .= "\r\n Assunto: ".$_POST['assunto'].""; // Texto da mensagem
$phpmail->Body .= "\r\n Mensagem: ".nl2br($_POST['mensagem']).""; // Texto da mensagem
 
//Envio da Mensagem
$enviado = $phpmail->Send();
 
//Limpa os destinatários
$phpmail->ClearAllRecipients();
$phpmail->ClearAttachments();
 
//Exibe uma mensagem de resultado
if ($enviado) {
echo "E-mail enviado com sucesso!";
} else {
echo "Não foi possível enviar o e-mail." . $mail->ErrorInfo;
}
} else {
echo $erros;
}
}
?>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Formulário de Contato</title>
<style type="text/css">
#contato {
font-family: verdana, tahoma, sans-serif;
}
 
#contato input, #contato textarea {
font-family: verdana, tahoma, sans-serif;
padding: 6px;
width: 200px;
}
</style>
</head>
 
<body>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" id="contato">
<fieldset>
<legend>Formulário de Contato</legend>
 
   <label>Seu nome:</label><br />
<input name="nome" type="text" value="<?php echo $nome ?>" /><br /><br />
 
<label>Seu email:</label><br />
<input name="email" type="text" value="<?php echo $email ?>" /><br /><br />
 
<label>Assunto:</label><br />
<input name="assunto" type="text"  value="<?php echo $assunto ?>" /><br /><br />
 
<label>Mensagem:</label><br />
<textarea name="mensagem" rows="10"  value="<?php echo $mensagem ?>"></textarea><br /><br />
 
<input name="submit" type="submit" value="Enviar" style="width: auto;" />
</fieldset>
</form>
</body>
</html>

Good there is the beginning, Simple code that you will adapt as needed. To send email with phpmailer.
Source: http://wiki.infolink.com.br/Como_enviar_e-mails_autenticados_utilizando_PHPMailer

  • Okay, I’ll try to use it. If it works out, I’ll let you know! Thank you!

  • The page simply goes blank and nothing happens.

Browser other questions tagged

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