====== Como configurar o SMTP autenticado para envio de formulários pelo site através do PHPMAILER ====== Porque devo utilizar um formulário em PHPMailer? Um formulário de contato em seu site facilita a comunicação de seus clientes e pessoas que têm interesse em seu negócio. No caso do PHPMailer, o envio é feito de forma autenticada. Isto é, você utilizar o servidor SMTP do seu domínio para enviar as mensagens. De um modo não autenticado você normalmente faz o envio através do próprio servidor web. Você pode conferir a documentação completa no endereço [[https://github.com/PHPMailer/PHPMailer]]. === E COMO UTILIZAR ESSA CLASSE DE ENVIO? === Para conseguir enviar emails pelo seu site via autenticação SMTP será necessário fazer uso da classe. Portanto, faça o download da versão mais recente pelo link informado acima. Depois de ter baixado, insira os arquivos **PHPMailerAutoload.php**, **class.phpmailer.php** e **class.smtp.php** em alguma pasta do seu FTP. Neste exemplo vamos utilizar uma pasta chamada autenvio. {{ :wiki:phpmailer-1.png?600 |}} === CONFIGURANDO OS DADOS DE AUTENTICAÇÃO SMTP === Crie um novo arquivo no mesmo nível do diretório onde colocou os arquivos da classe. O nome do arquivo fica a sua escolha, neste exemplo será utilizado o enviar.php. O arquivo deve conter o código abaixo e você deve fazer as devidas alterações para que o mesmo funcione: **Linha 3 – require_once(“autenvio/PHPMailerAutoload.php”):** Defina o caminho correto do arquivo class.phpmailer.php **Linha 9 – $mail->Host = “smtp.seudominio.com.br”:** Defina corretamente o seu host de envio SMTP **Linha 14 – $mail->Username = ‘conta-de-email@seudominio.com.br’:** Conta que fará o envio das mensagens (deve ser uma conta existente e ativa no seu domínio) **Linha 15 – $mail->Password = ‘senha’:** Defina a senha da sua conta de email que fará o envio da mensagem **Linha 18 – $mail->Sender = “conta-de-email@seudominio.com.br”:** Conta que fará o envio das mensagens (deve ser uma conta existente e ativa no seu domínio) **Linha 23 – $mail->AddAddress(‘recebe1@dominio.com.br’):** Defina a conta que receberá as mensagens IsSMTP();// Define que a mensagem será SMTP $mail->Host="smtp.seudominio.com.br";// Seu endereço de host SMTP $mail->SMTPAuth=true;// Define que será utilizada a autenticação - Mantenha o valor "true" $mail->Port=587;// Porta de comunicação SMTP - Mantenha o valor "587" $mail->SMTPSecure=false;// Define se é utilizado SSL/TLS - Mantenha o valor "false" $mail->SMTPAutoTLS=false;// Define se, por padrão, será utilizado TLS - Mantenha o valor "false" $mail->Username='conta-de-email@seudominio.com.br';// Conta de email existente e ativa em seu domínio $mail->Password='********';// Senha da sua conta de email // DADOS DO REMETENTE $mail->Sender="conta-de-email@seudominio.com.br";// Conta de email existente e ativa em seu domínio $mail->From="conta-de-email@seudominio.com.br";// Sua conta de email que será remetente da mensagem $mail->FromName="Form do site";// Nome da conta de email // DADOS DO DESTINATÁRIO $mail->AddAddress('recebe1@dominio.com.br','Nome - Recebe1');// Define qual conta de email receberá a mensagem //$mail->AddAddress('recebe2@dominio.com.br'); // Define qual conta de email receberá a mensagem //$mail->AddCC('copia@dominio.net'); // Define qual conta de email receberá uma cópia //$mail->AddBCC('copiaoculta@dominio.info'); // Define qual conta de email receberá uma cópia oculta // Definição de HTML/codificação $mail->IsHTML(true);// Define que o e-mail será enviado como HTML $mail->CharSet='utf-8';// Charset da mensagem (opcional) // DEFINIÇÃO DA MENSAGEM $mail->Subject ="Formulário de Contato";// Assunto da mensagem $mail->Body.=" Nome: ".$_POST['nome']."
";// Texto da mensagem $mail->Body.=" E-mail: ".$_POST['email']."
";// Texto da mensagem $mail->Body.=" Assunto: ".$_POST['assunto']."
";// Texto da mensagem $mail->Body.=" Mensagem: ".nl2br($_POST['mensagem'])."
";// Texto da mensagem // ENVIO DO EMAIL $enviado=$mail->Send(); // Limpa os destinatários e os anexos $mail->ClearAllRecipients(); // Exibe uma mensagem de resultado do envio (sucesso/erro) if($enviado){ echo"E-mail enviado com sucesso!"; }else{ echo"Não foi possível enviar o e-mail."; echo"Detalhes do erro: ".$mail->ErrorInfo; }
===TUDO CERTO ATÉ AQUI! COMO COLOCO O FORMULÁRIO NO SITE?=== Crie um novo arquivo e o insira dentro do mesmo diretório onde colocou o arquivo acima o seguinte conteúdo – ou, se preferir, faço o download aqui: {{ :wiki:form.zip |Baixar aquivo form.php}}. **Linha 20 – method=”POST” action=”envia.php”:** Você deve especificar corretamente o nome do arquivo criado no passo anterior. {{ :wiki:phpmailer-2.png?600 |}} Formulário PHPMailer

Formulário PHP-PHPMailer
Pronto! Agora você conseguirá enviar emails pelo formulário de contato do seu site de forma autenticada.