Ir para conteúdo
Rodrigo Vieira E da Silva

PHPMailer email em branco

Recommended Posts

Boa tarde Comunidade, tudo bem?

 

Estou fazendo um envio de e-mail utilizando a classe PHPMailer mas o email está chegando em branco o que pode estar acontecendo você podem me ajudar?

Veja o código.

 

<?php

ini_set('display_startup_errors',1);
ini_set('display_errors',1);
error_reporting(E_ALL);

// Adiciona o arquivo class.phpmailer.php - você deve especificar corretamente o caminho da pasta.
require_once("PHPMailer-master/PHPMailerAutoload.php");
// Aqui inicia a classe PHPMailer

if(isset($_FILES['arquivo'])){
      $errors= array();
      $file_name = $_FILES['arquivo']['name'];
      $file_size = $_FILES['arquivo']['size'];
      $file_tmp = $_FILES['arquivo']['tmp_name'];
      $file_type = $_FILES['arquivo']['type'];
      $file_ext=strtolower(end(explode('.',$_FILES['arquivo']['name'])));
      
      $expensions= array("jpeg","jpg","png","pdf");
      
      if(in_array($file_ext,$expensions)=== false){
         $errors[]="Essa estão não é permitido, as extensões permitidas são PDF, JPEG ou PNG file";
      }
      
      if($file_size > 5097152) {
         $errors[]='O tamanho maximo para envio de arquivos é 5 MB';
      }
      
      if(empty($errors)==true) {
         move_uploaded_file($file_tmp,"anexos/".$file_name); //The folder where you would like your file to be saved
         echo "Success";
      }else{
         print_r($errors);
      }
   }


$mail = new PHPMailer();
 
//  DADOS DE AUTENTICAÇÃO - Você deve alterar conforme o seu domínio da sua hospedagem!
$mail->IsSMTP(); // Define que a mensagem será SMTP
$mail->Host = "smtp.dominio.com.br"; // Seu endereço de host SMTP(seu domínio)
$mail->SMTPAuth = true; // Define que será utilizada a autenticação -  Mantenha o valor "true"
$mail->Port = 587; // Porta de comunicação SMTP - Na maioria das vezes se usa a porta"587", mas confirme com sua hospedagem a porta correta.
$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 = 'contato@dominio.com.br'; // Conta de email existente e ativa em seu domínio
$mail->Password = 'password'; // Senha da sua conta de email que você fez dentro da sua hospedagem
 
// DADOS DO REMETENTE
$mail->Sender = "contato@dominio.com.br"; // Conta de email existente e ativa em seu domínio
$mail->From = "contato@dominio.com.br"; // repita o mesmo e-mail
$mail->FromName = "Nome do Site"; // Nome do site 
 
// DADOS DO DESTINATÁRIO
$mail->AddAddress('contato@dominio.com.br', 'Contato Nome do site'); // Aqui é o email que você quer que receba as mensagens do formulário
//$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 
$mail->AddAttachment($file_tmp,"anexos/".$file_name);

 
// DEFINIÇÃO DA MENSAGEM
$mail->Subject  = "Formulário de Contato"; // Assunto da mensagem
$mail->Body .= " Nome: ".$_POST['nome']."<br>"; // Texto da mensagem
$mail->Body .= " Empresa: ".$_POST['empresa']."<br>"; // Texto da mensagem
$mail->Body .= " E-mail: ".$_POST['email']."<br>"; // Texto da mensagem
$mail->Body .= " Telefone: ".$_POST['telefone']."<br>"; // Texto da mensagem
$mail->Body .= " Cidade: ".$_POST['cidade']."<br>"; // Texto da mensagem
$mail->Body .= " Estado: ".$_POST['estado']."<br>"; // Texto da mensagem
$mail->Body .= " Assunto: ".$_POST['assunto']."<br>"; // Texto da mensagem
$mail->Body .= " Mensagem: ".nl2br($_POST['mensagem'])."<br>"; // Texto da mensagem
$mail->Body .= " Para visualizar o arquivo ele está no seguinte link http://www.dominio.com.br/anexos/".$file_name."";
 
// ENVIO DO EMAIL
$enviado = $mail->Send();
// Limpa os destinatários e os anexos
$mail->ClearAllRecipients();
 
// Exibe uma mensagem de resultado do envio 
if ($enviado) {
  echo "<script>window.location='http://www.dominio.com.br';alert('$_POST[nome], sua mensagem foi enviada com sucesso! Estaremos retornando em breve');</script>";
} else {
  echo "Não foi possível enviar o e-mail.";
  echo "<b>Detalhes do erro:</b> " . $mail->ErrorInfo;
}
?>

Um abraço a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro Rodrigo, eu uso desta forma para enviar e-mail, um pouco mais simples.

 

Se te ajudar.

	<?php 
	  if(isset($_POST['executar'])){

		$emailAdmin    = 'contato@contatoimoveis.com.br';
		$emailAssunto  = 'Contato Imoveis';
		$emailStatus   = 'completo';
		$emailResposta = date('Y-m-d H:m:s');

		$headers = "From: $emailAdmin\n";
		$header .= "content-type: text/html; charset=\"utf-8\"\n\n";

		$emailId           = $_POST['emailId'];
		$emailTxt          = strip_tags(trim($_POST['mensagem']));
		$emailClienteEmail = $_POST['cliente-email'];
		$emailNome         = $_POST['emailNome'];

		$recebidoEm = $_POST['emailData'];
		$mensagemEm = $_POST['emailMensagem'];

	        //IF - verifica se o campo Resposta Mensagem está vazio.
			if(empty($emailTxt)){
				echo '<div class="no">O campo Mensagem não foi informado. Por favor, preencher este campo.</div>';
				echo '<meta http-equiv="refresh" content="3, URL=painel.php?exe=admin-inbox/inbox" />';
			} else {

			$sql_enviaAdmin  = 'UPDATE mailadmin SET ';
			$sql_enviaAdmin .= 'emailStatus = :emailStatus, emailResposta = :emailResposta, emailTxt = :emailTxt WHERE emailId = :emailId';

			   try{
				   $query_enviaAdmin = $conecta->prepare($sql_enviaAdmin);
				   $query_enviaAdmin->bindValue(':emailStatus',$emailStatus,PDO::PARAM_STR);
				   $query_enviaAdmin->bindValue(':emailResposta',$emailResposta,PDO::PARAM_STR);
				   $query_enviaAdmin->bindValue(':emailTxt',$emailTxt,PDO::PARAM_STR);
				   $query_enviaAdmin->bindValue(':emailId',$emailId,PDO::PARAM_STR);
				   $query_enviaAdmin->execute();

				   echo '<div class="ok">Mensagem Enviada com sucesso</div>';
	               echo '<meta http-equiv="refresh" content="3, URL=painel.php?exe=admin-inbox/inbox" />';
				   
				     $mensagemEnvio = "Olá <strong>$emailNome</strong> a SeuLar Imóveis Agradece seu contato:<br /><br />
					 <strong>Em resposta:</strong> $emailTxt<br /><br />
			         <strong>Recebemos sua mensagem em:</strong> $emailData;<br />
			         <strong>Resposta em:</strong> $recebidoEm<br /><br />
			         <strong>Mensagem recebida:</strong> $mensagemEm ";
					 
					 //Para onde será enviado o e-mail
					 mail($emailClienteEmail,$emailAssunto,$emailTxt,$headers);
				   
				   
				   }catch(PDOexception $error_adminEmail){
					   echo 'Erro ao atualizar o email'.$error_adminEmail->getMessage();
			   }
	       }//Fim do IF - verifica campo vazio

	  }//Fim do IF - executar

	?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Malebo
      Boas.
       
      Estou a três semana com erro abaixo, preciso da vossa ajura para poder baixar as imagens do mysql no laradock.
      Abaixo o trecho de codigo, quando executou docker-compose up -d mysql ele nunca sai desta tela.
       
      $ docker-compose build --no-cache mysql
      Building mysql
      Step 1/9 : ARG MYSQL_VERSION=8.0
      Step 2/9 : FROM mysql:${MYSQL_VERSION}
      8.0: Pulling from library/mysql
       
    • Por zinleo1
      Estou precisando consultar o endereço(tipo_logradouro e logradouro) de um cliente no meu banco de dados mas to tendo problemas no select, alguém consegue me ajudar, como faço para dar select em duas tabelas? Segue o código:
       
       

      <html>
          <head>
              <meta charset="UTF-8">
              <title></title>
          </head>
          <body>
      <fieldset>
      <legend>Lista de Registros</legend>
      <table border="1" width="100%">
       <tr>
            <th>Código do Usuário</th>
            <th>Nome do Usuário</th>
            <th>Sobrenome do Usuário</th>
            <th>Tipo de Logradouro</th>
            <th>Logradouro</th>
       </tr>
       
      <?php
          
          if(isset($_POST["consultar"])){
                  $nome = $_POST['nome'];
                  $sobrenome = $_POST['sobrenome'];
                  
                          
                 
               include('conexao.php');
          
                  $sqlconsultaraluno= "select * from aluno where nome_aluno='$nome' or sobrenome_aluno='$sobrenome'"; 
                  $consultaraluno = mysqli_query($con,$sqlconsultaraluno);
                              
                 $i = 0;
              if (mysqli_num_rows($consultaraluno, $consultarendereco) == 0){
                  echo "<h4>Nenhum Registro Encontrado!</h4>";
              }
              else{
              while ($linha = mysqli_fetch_array($consultarendereco)) {
                 $cod_aluno = $linha["cod_aluno"];
                 $nome = $linha["nome_aluno"];
                 $sobrenome = $linha["sobrenome_aluno"];
                         $tipologradouro = $linha['tipo_logradouro'];
                         $logradouro = $linha ['logradouro'];    
                         
                 if ($i % 2 == 0){
                    $cor = "#DDDDDD";
                 }
                 else{
                    $cor = "#FFFFFF";
                 }
                         
                 
          ?>
              <tr bgcolor="<?php echo $cor; ?>"
                          <td></td>
                          <td><?php echo $cod_aluno; ?></td>
                          <td><?php echo $nome; ?></td>
                          <td><?php echo $sobrenome; ?></td>
                          <td><?php echo $tipologradouro; ?></td>
                          <td><?php echo $logradouro; ?></td>
                          
                         
                          <td><?php echo "<a href='editar_usuario.php?id=".$linha["cod_aluno"]."'>Editar</a>";?></td>
                          <td><?php echo "<a href='deletar_usuario.php?id=".$linha["cod_aluno"]."'>Deletar</a>";?></td>
              </tr>
               
              <?php
                 $i++;
                         
              }
          }
        
              }
                      
      ?>
      </table>
          </body>
      </html>
    • Por diogoglobaltec
      criei um formulário dinamico e gostaria de enviar para o arquivo rec.php, os aquivos adicionados pelo no formato file , já tentei colocar em
       x.setAttribute("enctype" , "multipart/form-data");
      também não funcionou segue o arquivo:
       
      <!DOCTYPE html>
          <html>
              <body>
              
                  
                  
                  <p>Click the button to create a FORM and an INPUT element.</p>
                  <button onclick="myFunction()">Try it</button>
                  <button onclick="enviar()">enviar</button>
          <script>
          function myFunction() {
            var x = document.createElement("FORM");
            x.setAttribute("action", "rec.php");
          x.setAttribute("method", "post");
          x.setAttribute("id", "myForm");
            document.body.appendChild(x);

            var y = document.createElement("INPUT");
            y.setAttribute("type", "file");
            y.setAttribute("name", "arquivo[]");
            document.getElementById("myForm").appendChild(y);
      }
           function enviar(){
              document.forms[0].submit(); 
          
          }
          </script>

              </body>
      </html>
       
      consigo pegar no arquivo rec.php o valor de $_POST , mas de $_FILES não consigo pegar como um array, o que está dando errado ? segue o  script PHP 
       
      Arquivo rec.php
      <?php
      foreach($_POST['arquivo'] as $value) {
              echo $value."<br />";
      }
      foreach($_FILES['arquivo'] as $value) {
                     echo $value['arquivo']['name']."<br />";
      }
       
       
       
       
    • Por Jonas Ribeiro Nascimento
      Estou criando meu próprio mvc php para adquirir mais conhecimento.
      Mas estou me deparando com uma coisa muita estranha, eu perco a $_SESSION de uma view para outra view
      Fiz um codigo simples pra testar.a.php ----- view a.php
      <?php session_start(); $_SESSION['teste'] = 'Funcionou'; echo $_SESSION['teste']; ?> <?php session_start(); echo $_SESSION['teste']; // Notice: Undefined variable: _SESSION in var_dump($_SESSION); // Notice: Undefined variable: _SESSION in NULL ?> <?php namespace Sis\Classes; use App\Model\ClassLogin; use Sis\Traits\TraitGetIp; class ClassSession { private $login; private $timeSession = 1200; private $timeCanary = 300; public function __construct(){ if(session_id() == ''){ ini_set("session.save_handler", "files"); //Cabeçalhos somente atraves de arquivos ini_set("session.use_cookies", 1); //Habilita o uso de cookies ini_set("session.use_only_cookies", 1); //Só pode habilitar a seção atraves de coockies ini_set("session.cookie_domain", DOMAIN); //Só aceita coockies vindo do nosso sistema ini_set("session.cookie_httponly", 1); //Só aceita script php e não deixa o javascript alterar o sistema if(DOMAIN != "localhost"){ ini_set("session.cookie_secure", 1); //Para trabalhar com o SSL do servidor ativo } /*Criptografia das nossas sessions*/ ini_set("session.entropy_length", 512); // ini_set("session.entropy_file","/dev/urandom"); ini_set("session.hash_function", "sha256"); ini_set("session.hash_bits_per_character", 5); session_start(); } $this->login = new ClassLogin(); } #Proteger contra roubo de sessão public function setSessionCanary($par=null){ session_regenerate_id(true); if($par == null){ $_SESSION['canary']=[ "birth" => time(), "IP" => TraitGetIp::getUserIp() //Pega o ip do usuario ]; }else{ $_SESSION['canary']['birth']=time(); } } #Verificar a integridade da sessão public function verifyIdSessions(){ if(!isset($_SESSION['canary'])){ $this->setSessionCanary(); } if($_SESSION['canary']['IP'] !== TraitGetIp::getUserIp()){ $this->destructSessions(); $this->setSessionCanary(); } if($_SESSION['canary']['birth'] < time() - $this->timeCanary){ $this->setSessionCanary("Time"); } } #Setar as sessões do nosso sistema public function setSessions($Email){ $this->verifyIdSessions(); $_SESSION['Login'] = true; $_SESSION['Time'] = time(); $_SESSION['Nome'] = $this->login->getIssetSession($Email)['data']['Nome']; $_SESSION['Email'] = $this->login->getIssetSession($Email)['data']['Email']; $_SESSION['Permissoes'] = $this->login->getIssetSession($Email)['data']['Permissoes']; } #Validar as páginas internas do sistema public function verifyInsideSession(){ $this->verifyIdSessions(); if(!isset($_SESSION['Login']) || !isset($_SESSION['Permissoes']) || !isset($_SESSION['canary'])){ $this->destructSessions(); header("Location: ".DIRPAGE."NaoAutorizado"); }else{ if($_SESSION['Time'] >= time() - $this->timeSession){ $_SESSION['Time']=time(); }else{ $this->destructSessions(); header("Location: ".DIRPAGE."NaoAutorizado"); } } } #Destruir as sessions existentes public function destructSessions(){ foreach (array_keys($_SESSION) as $key) { unset($_SESSION[$key]); } } #testar public function testarSessions(){ echo 'oiiiiiiiiiiiiiiiiiiiiiiooooooooooo'; } }

    • Por Allan Carlos dos Santos G
      Bom dia Pessoal, Gostaria de saber como Instalar e colocar pra rodar a versão do Zend PHP 1.11.11, tenho tido dificuldade de achar material na internet e se puderem ajudar, obrigado!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.