Jump to content
alisonalves

Problemas ao enviar anexos com phpmailer?

Recommended Posts

Coloquei este código "$arquivo = $_FILES['arquivo'];" no meu phpmailer para anexar arquivos à mensagem mas não está funcionando. Alguém pode me ajudar a enxergar onde estou errando? O códig completo do phpmailer segue abaixo.

 

<?php

# Inclui o arquivo class.phpmailer.php localizado na pasta phpmailer
require_once("class.phpmailer.php");
require_once("class.smtp.php");

# Inicia a classe PHPMailer
$mail = new PHPMailer();

# Define os dados do servidor e tipo de conexão
$mail->IsSMTP(); // Define que a mensagem será SMTP
$mail->Host = "email-ssl.com.br"; # Endereço do servidor SMTP
$mail->Port = 587; // Porta TCP para a conexão
$mail->SMTPAutoTLS = false; // Utiliza TLS Automaticamente se disponível
$mail->SMTPAuth = true; # Usar autenticação SMTP - Sim
$mail->Username = 'contato@xx.com.br'; # Usuário de e-mail
$mail->Password = 'xxx'; // # Senha do usuário de e-mail

# Define o remetente (você)
$mail->From = "contato@xxx.com.br"; # Seu e-mail
$mail->FromName = "E-mail de contato"; // Seu nome

# Define os destinatário(s)
$mail->AddAddress('contato@xxx.com.br', 'Fulano da Silva'); # Os campos podem ser substituidos por variáveis
#$mail->AddAddress('webmaster@nomedoseudominio.com'); # Caso queira receber uma copia
#$mail->AddCC('ciclano@site.net', 'Ciclano'); # Copia
#$mail->AddBCC('fulano@dominio.com.br', 'Fulano da Silva'); # 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  = "Classificados"; // Assunto da mensagem
$mail->Body .= " titulo: ".nl2br($_POST['titulo'])."<br>"; // Texto da mensagem
$mail->Body .= " valor: ".nl2br($_POST['valor'])."<br>"; // Texto da mensagem
$mail->Body .= " cidade: ".nl2br($_POST['cidade'])."<br>"; // Texto da mensagem
$mail->Body .= " estado: ".nl2br($_POST['estado'])."<br>"; // Texto da mensagem
$mail->Body .= " area: ".nl2br($_POST['area'])."<br>"; // Texto da mensagem
$mail->Body .= " num_lugares: ".nl2br($_POST['num_lugares'])."<br>"; // Texto da mensagem
$mail->Body .= " aluguel_valor: ".nl2br($_POST['aluguel_valor'])."<br>"; // Texto da mensagem
$mail->Body .= " aluguel_contrato: ".nl2br($_POST['aluguel_contrato'])."<br>"; // Texto da mensagem
$mail->Body .= " num_funcionarios: ".nl2br($_POST['num_funcionarios'])."<br>"; // Texto da mensagem
$mail->Body .= " iptu: ".nl2br($_POST['iptu'])."<br>"; // Texto da mensagem
$mail->Body .= " faturamento: ".nl2br($_POST['faturamento'])."<br>"; // Texto da mensagem
$mail->Body .= " site: ".nl2br($_POST['site'])."<br>"; // Texto da mensagem
$mail->Body .= " detalhes: ".nl2br($_POST['detalhes'])."<br>"; // Texto da mensagem
$mail->Body .= " nome: ".nl2br($_POST['nome'])."<br>"; // Texto da mensagem
$mail->Body .= " telefone: ".nl2br($_POST['telefone'])."<br>"; // Texto da mensagem
$mail->Body .= " email: ".nl2br($_POST['email'])."<br>"; // Texto da mensagem
$arquivo = $_FILES['arquivo'];


# Define os dados técnicos da Mensagem
$mail->IsHTML(true); # Define que o e-mail será enviado como HTML
#$mail->CharSet = 'iso-8859-1'; # Charset da mensagem (opcional)

# Define os anexos (opcional)
#$mail->AddAttachment("c:/temp/documento.pdf", "documento.pdf"); # Insere um anexo

# Envia o e-mail
$enviado = $mail->Send();

# Limpa os destinatários e os anexos
$mail->ClearAllRecipients();
$mail->ClearAttachments();

# Exibe uma mensagem de resultado (opcional)
if ($enviado) {
 echo "E-mail enviado com sucesso!";
} else {
 echo "Não foi possível enviar o e-mail.";
 echo "<b>Informações do erro:</b> " . $mail->ErrorInfo;
}
?>

 

Share this post


Link to post
Share on other sites

A resposta está no seu código mesmo, veja:

 

Citar

# Define os anexos (opcional) #$mail->AddAttachment("c:/temp/documento.pdf", "documento.pdf"); # Insere um anexo

 

Só descomentar a linha e passar o anexo no parâmetro de $mail->AddAttachment();

$mail->AddAttachment($_FILES['uploaded_file']['tmp_name'], $_FILES['uploaded_file']['name']);

Os parâmetros são: $mail->addAttachment($path, $name, $encoding, $type);

 

Entendeu?

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Salvatore
      Galera alguem poderia me explicar como faço isto ultilizando php? estou perdido
      tenho que usar varias imagens?
       
      De acordo que ele clica e seleciona a poltrona ela muda de cor 
      RED: OCUPADA
      AZUL: LIVRE

    • By drx
      Olá feras!
       
      Estou recebendo este retorno da conexão: SQLSTATE[HY000] [1049] Base 'dbbase' inconnue
       
      O que é que pode ser?
       
      Tudo certinho. Fala que a dbbase não existe, mas existe.
      Alguém tem uma solução ?
       
      Desde já agradeço.
    • By helkton
      ola galera, dúvida besta, mais ja estou quebrando a cabeça,
      seguinte estou preso  num select <option> vindo do banco de dados
      fiz alguns com o if(){}
      mais é pra saber tipoImovel - interesseImovel ou finalidadeImovel
      esses ai são poucos, ficou dboas fazer um if(){} pra cada. Agora pensa comigo...
      Tenho uma TABELA clientes, guardo as informações dos clientes
      Tenho outra tabela imoveis, com os dados do imóvel e tbm com o cliente que cadastrou o imovel,
      na pagina pra editar-imovel.php, monto o <option> pra consultar na tabela clientes todos os clientes cadastrados, como deixo "selected" no nome do cliente que cadastrou o imóvel??
    • By eduardaarosaa
      Ola!! Estou tentando fazer o upload de múltiplos arquivos usando o laravel. Mas  estou tendo o seguinte erro ao tentar cadastrar: 
      "Call to undefined method Symfony\Component\HttpFoundation\FileBag::extension()"  
      Meu controller:
        public function cadastro_info(Request $request)
          {
              $dataForm = $request->except('_token');
              $nameFile = null;
              $loop = count($request->files);
              for ($i=0; $i< $loop; $i++) {
             
                  $name = uniqid(date('HisYmd'));
                  $extension = $request->files->extension();
                  $nameFile = "{$name}.{$extension}";

                  $upload = $request->files->storeAs('upload', $nameFile);
                }
                  if (!$upload)
                      return redirect()
                          ->back()
                          ->with('error', 'Falha ao fazer upload')
                          ->withInput();
              }
      Minha rota:
       Route::post('/cadastro_empresa', 'Site\SiteController@cadastro_info')->name('cadastro_info');
       
      O que estou carregando no controller:
      use Illuminate\Http\Request;
      use DB;
      use App\Http\Controllers\Controller;
      use App\Models\Site\cadastro;
       
      Gerei o link para o storage já 
       
      Alguém sabe dizer o motivo do erro?
       
      Obrigada!!!
       
       
    • By stefany nogueira
      Não estou esta trazendo a tabela e aparece o seguinte erro:

              
      ( ! ) Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\wamp64\www\busca\index.php on line 20
      Call Stack
      #TimeMemoryFunctionLocation
      10.0009402840{main}(  )...\index.php:0
      20.0032418656mysqli_fetch_assoc
      (  )...\index.php:20
                    
       
       
      <?php
          include "conexao.php"
      ?>
          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml1" lang="pt-br" xml:lang="pt-br">
          <head>
              <meta charset="utf-8">
              <title> Busca </title>
          </head>
          <body>
          <form action="results" method="post">
          <select name = convênios>
              <option>Selecione o convênio</option>
              <?php
                  $convenios = "SELECT * FROM convênios";
                  $qrconvenio = mysqli_query($conexao, $convenios);
                  while ($row_convenios = mysqli_fetch_assoc($qrconvenio)) ?>
                      <option value="<?php echo($row_convenios ['id_convenios'])?>"><?php echo($row_convenios ['convenio']) ?></option>
              ?>            
          </select>
      </body>
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.