Formulário de Contato

Neste tópico dispomos de exemplos de formulários de contato para seu site.

Há duas formas de realizar o envio:

Envio com autenticação local : Este envio utiliza o SMTP do servidor de hospedagem da Umbler, ideal para o envio de mensagens de seu site para um e-mail do administrador do mesmo, pois a mensagem utiliza um e-mail @umbler.net.
Será preciso apenas informar o destino da mensagem, os dados de autenticação serão gerados pelo servidor da Umbler de forma automática.

Envio com SMTP externo : Este envio utiliza um servidor de SMTP como o SendGrid ou do exchange da Umbler, recomendado para envios de seu site para e-mails de seus clientes.
Será preciso informar todos os dados do servidor SMTP, como host, login, senha e porta para saída das mensagens.

Todas as mensagens disparadas pelo SMTP local ou exchange da Umbler passam por um filtro anti-spam, assim mensagens de marketing ou campanhas são bloqueadas. Para o envio de mensagens em massa recomendamos a utilização do SendGrid, Mandrill ou MailGun.

Autenticação Local - mail()

Neste arquivo apenas o campo $email_to = ’ seu e-mail aqui que irá receber a mensagem '; deve ser alterado, informando dentro das aspas o e-mail de destino da mensagem.

<?php
$name = $_POST['name'];
//pega os dados que foi digitado no ID name.

$email = $_POST['email'];
//pega os dados que foi digitado no ID email.

$subject = $_POST['subject'];
//pega os dados que foi digitado no ID sebject.

$message = $_POST['message'];
//pega os dados que foi digitado no ID message.

$myEmail = "contato@meudominio.com";
//é necessário informar um e-mail do próprio domínio

$headers = "From: $myEmail\r\n";
$headers .= "Reply-To: $email\r\n";

/*abaixo contém os dados que serão enviados para o email
cadastrado para receber o formulário*/

$corpo = "Formulário enviado\n";
$corpo .= "Nome: " . $name . "\n";
$corpo .= "Email: " . $email . "\n";
$corpo .= "Comentários: " . $message . "\n";

$email_to = 'seu e-mail aqui que irá receber a mensagem';
//não esqueça de substituir este email pelo seu.

$status = mail($email_to, $subject, $corpo, $headers);
//enviando o email.

if ($status) {
  echo "<script> alert('Formulário enviado com sucesso!'); </script>";
  
//mensagem de form enviado com sucesso.

} else {
  echo "<script> alert('Falha ao enviar o Formulário.'); </script>";
  
//mensagem de erro no envio. 

}
?>

SMTP Externo - phpMailer

Enviando e-mail autenticado utilizando seu e-mail criado na Umbler ou SMTP externo, como o SendGrid.

<?php
//Import the PHPMailer class into the global namespace
require("PHPMailer/PHPMailer.php");
require("PHPMailer/SMTP.php");
require("PHPMailer/Exception.php");

$mail = new PHPMailer();

// Define que a mensagem será SMTP
$mail->IsSMTP();

// Host do servidor SMTP externo, como o SendGrid.
$mail->Host = "smtp.servidorExterno.com.br";

// Autenticação | True
$mail->SMTPAuth = true;

// Usuário do servidor SMTP
$mail->Username = 'e-mail@dominio.com.br';

// Senha da caixa postal utilizada
$mail->Password = 'senha';

$mail->From = "email@dominio.com.br";
$mail->FromName = "Nome do Remetente ";
$mail->AddAddress('destinatario@dominio.com.br', 'Nome do Destinatário');

// Define que o e-mail será enviado como HTML | True
$mail->IsHTML(true);

// Charset da mensagem (opcional)
$mail->CharSet = 'iso-8859-1';

// Assunto da mensagem
$mail->Subject = "Mensagem Teste";

// Conteúdo no corpo da mensagem
$mail->Body = 'Conteudo da mensagem';

// Conteúdo no corpo da mensagem(texto plano)
$mail->AltBody = 'Conteudo da mensagem em texto plano';

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

$mail->ClearAllRecipients();

if ($enviado) {
  echo "E-mail enviado com sucesso!";
} else {
  echo "Não foi possível enviar o e-mail.";
  echo "Motivo do erro: " . $mail->ErrorInfo;
}
?>
           $nomeCompleto  = "Joaquim José da Silva";
           $email_to = "emaildojoaquim@josedasilva.com";
           $app['mail_from'] = "meuemail@bemformar.com.br   

 //assunto
            $subject = 'Finalizar cadastro - ' . $app['url'];

//mensagem
            $message = '
            <html>
            <head>
             <title>Finalizar cadastro - $app["url"]</title>
            </head>
            <body>
            <p>Olá ' . $nomeCompleto . ',<br /> utilizando a senha ' . $senha . ', volte a acessar o nosso site e faça o login para ativar sua conta ' . $app["url"] . '</p>
            </body>
            </html>
            ';         

//headers
            $headers = 'MIME-Version: 1.0' . "\r\n";
            $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
            $headers .= 'To: ' . $nomeCompleto . ' <' . $email_to . '>' . "\r\n";
            $headers .= 'From: R.ED - Bem Formar <'.$app['mail_from'].'>' . "\r\n";
            $headers .= 'Reply-To: ' . $email_to . "\r\n";

//envio
            $mail = mail($email_to, $subject, $message, $headers);

Localmente, este código utilizando o smtp do gmail funciona corretamente.

O que falta para que ele funcione aqui na UMBLER?

Tambem estamos com o mesmo problema. Seria a declaracao de uma porta? Mesma habilitando o “app menos seguros” e desabilitando os 2-step verification do gmail nao consegue carregar as informacoes do php para o ssl ou tsl