Ir para conteúdo
Guttierre Rodrigues

[Ajuda] Enviar e-mails com anexo via PHPMailer

Recommended Posts

Estou tentando enviar e-mail com anexo com o PHPMailer. Possuo um código que funciona perfeitamente porém não consigo faze-lo com anexo. O Código é este:

Como posso fazer para funcionar o envio de anexo?

<?php
  if(isset($_POST['sendForm'])){
      $f['nome']      = mysql_real_escape_string($_POST['nome']);
      $f['email']     = mysql_real_escape_string($_POST['email']);
      $f['telefone']     = mysql_real_escape_string($_POST['telefone']);
      $f['assunto']   = mysql_real_escape_string($_POST['assunto']);
      $f['mensagem']  = mysql_real_escape_string($_POST['mensagem']);

      if(in_array('',$f)){
          echo '<p class="mensagem-erro">Erro, preencha todos os campos!</p>';
      }elseif(!isMail($f['email'])){
          echo '<p class="mensagem-erro">Erro, o e-mail informado não é valido, por favor tente novamente!</p>';
      }else{
          $assunto = 'Nova Mensagem via solicitação de orçamento da sessão: ENERGIA SOLAR';
          $msgSend = '<h4>Nova Mensagem via solicitação de orçamento da sessão: ENERGIA SOLAR</h4><br><hr><p><strong>Nome: </strong>'.$f['nome'].'<br /><strong>Email: </strong>'.$f['email'].'<br /><strong>Telefone: </strong>'.$f['telefone'].'<br /><strong>Assunto: </strong>'.$f['assunto'].'<br /><br><hr><strong>Mensagem: </strong>'.$f['mensagem'];
          sendMail($assunto,$msgSend,MAILUSER,SITENAME,MAILUSER,SITENAME, $f['email'], $f['nome']);
          echo '<p class="mensagem-sucesso">Sucesso! Sua solicitação foi enviada, aguarde nosso contato!</p>';
      }
  }
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Draco Malfoy, obrigado por responder.

 

Segue a função do sendMail

 

function sendMail($assunto,$mensagem,$remetente,$nomeRemetente,$destino,$nomeDestino, $reply = NULL, $replyNome = NULL){
	
	require_once('mail/class.phpmailer.php'); //Include pasta/classe do PHPMailer
	
	$mail = new PHPMailer(); //INICIA A CLASSE
	$mail->IsSMTP(); //Habilita envio SMPT
	$mail->SMTPAuth = true; //Ativa email autenticado
	$mail->IsHTML(true);
	
	$mail->Host = MAILHOST; //Servidor de envio
	$mail->Port = MAILPORT; //Porta de envio
	$mail->Username = MAILUSER; //email para smtp autenticado
	$mail->Password = MAILPASS; //seleciona a porta de envio
	
	$mail->From = utf8_decode($remetente); //remtente
	$mail->FromName = utf8_decode($nomeRemetente); //remtetene nome
	
	if($reply != NULL){
		$mail->AddReplyTo(utf8_decode($reply),utf8_decode($replyNome));	
	}
	
	$mail->Subject = utf8_decode($assunto); //assunto
	$mail->Body = utf8_decode($mensagem); //mensagem
	$mail->AddAddress(utf8_decode($destino),utf8_decode($nomeDestino)); //email e nome do destino
	
	if($mail->Send()){
		return true;
	}else{
		return false;
	}
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentou?

$filePath = __DIR__ . '/caminho_do_anexo/arquivo.pdf';
$mail->addStringAttachment(file_get_contents($filePath), 'arquivo.pdf');

 

  • Gostei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Draco Malfoy,

 

Obrigado por responder.

 

Vou tentar aqui, infelizmente sou leigo e peguei este código pronto. Por isso estou tendo dificuldade neste caso.

 

Só pra passar a limpo, irei inserir o código que você me mandou na função sendMail, certo? Logo após preciso fazer quais mudanças na parte do formulário? (Código que enviei na primeira mensagem do tópico)

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 PlatBubbles
      Ola, estou tendo dificuldade para fazer uma consulta seletiva usando duas tabelas, provavelmente estou errando a sintaxe da busca, agradeço caso alguem possa me passar a forma correta de fazer a busca.
       
      $sqluser = "SELECT aquestion_id, user_id FROM respostas WHERE user_id like '$logado' UNION SELECT * pergunta, question_id FROM questions WHERE question_id!=aquestion_id ORDER BY RAND() LIMIT 1"; Explicando
      Na tabela respostas preciso dos dados aquestion_id e user_id apenas do usuário Logado.
      Da tabela questions preciso da pergunta e da question_id que deve ser gerada de forma aleatória mas apenas com os Ids que não estejam  listados em aquestion_id.
      Na verdade as duas tabelas tinham o campo question_id porem estava confuso e por isso mudei o campo da primeira tabela para aquestion_id.
       
      Agradeço qualquer ajuda, e também pelo tempo dos que leram mesmo se não puderam ajudar.
      PlatBubbles
    • Por MateusOFCZ
      Olá, eu criei uma página de publicidade, porém não fluiu como eu queria, então coloquei essa página em uma DIV, alguém poderia me informar se irá funcionar caso eu faça um sistema para ocultar essa DIV depois de 10 segundos?
      <!--- Publicidade ------> <div id="publicidadediv"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title><?= $config['hotelName'] ?> - Publicidade</title> <script src="/templates/GalaxyServers/client/js/jquery-latest.js" type="text/javascript"></script> <script src="/templates/GalaxyServers/client/js/jquery-ui.js" type="text/javascript"></script> <script src="/templates/GalaxyServers/client/js/spacehotel2018.js"></script> <script src="/templates/GalaxyServers/client/js/flash_detect_min.js"></script> <script src="/templates/GalaxyServers/client/js/client.js" type="text/javascript"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"> <link rel="icon" type="image/png" href="<?= $config["favicon"];?>"> </head> <body> <body style="background-color:black;"> <center><img src="https://i.imgur.com/kHdzpqq.png" style="width:396px;height:91px;"></center> <center><?php $imagens = array(); $imagens[] = '<a href="https://hobbyhotel.club/hotel?room=255" target="_blank"><img src="https://i.imgur.com/O0gSito.png" style="width:330px;height:250px;"></a>'; $imagens[] = '<a href="https://hobbyhotel.club/hotel?room=255" target="_blank"><img src="https://i.imgur.com/O0gSito.png" style="width:330px;height:250px;"></a>'; $chave = array_rand($imagens); $imagem = $imagens[$chave]; echo $imagem; ?></center> <center><img src="https://i.imgur.com/9FH4A5O.png" style="width:396px;height:91px;"></center> </body> </div> <!--- Publicidade ------> Gostaria de sabem também como faço para ocultar tudo isso após X segundos...
    • Por Devlong
      Estou com esse erro quando tento usar PHP 7.1 ( no PHP 5.6 não dar erro )
       
      rsslib.php
      <?php $RSS_Content = array(); function RSS_Tags($item, $type = 1, $channel_name="", $image="") { $y = array(); $tnl = $item->getElementsByTagName("title"); $tnl = $tnl->item(0); $title = $tnl->firstChild->textContent; $tnl = $item->getElementsByTagName("link"); $tnl = $tnl->item(0); $link = $tnl->firstChild->textContent; $tnl = $item->getElementsByTagName("pubDate"); $tnl = $tnl->item(0); $date = $tnl->firstChild->textContent; $y["channel"] = $channel_name; $y["title"] = $title; $y["link"] = $link; $y["date"] = $date; $y["type"] = $type; $y["image"] = $image; return $y; } function RSS_Channel( $channel, $key ) { global $RSS_Content; $items = $channel->getElementsByTagName("item"); $y = RSS_Tags($channel, 0); $channel_name = $y['title']; foreach($items as $item) { $y = RSS_Tags($item, 1, $channel_name, $key); array_push($RSS_Content, $y); } } function RSS_Retrieve( $urls = array() ) { global $RSS_Content; $RSS_Content = array(); foreach ( $urls as $key => $url ) { $doc_{$key} = new DOMDocument(); $doc_{$key}->load( $url ); $channels_{$key} = $doc_{$key}->getElementsByTagName("channel"); foreach( $channels_{$key} as $channel ) { RSS_Channel( $channel, $key ); } } } function RSS_RetrieveLinks($url) { global $RSS_Content; $doc = new DOMDocument(); $doc->load($url); $channels = $doc->getElementsByTagName("channel"); $RSS_Content = array(); foreach($channels as $channel) { $items = $channel->getElementsByTagName("item"); foreach($items as $item) { $y = RSS_Tags($item, 1); array_push($RSS_Content, $y); } } } function RSS_Links($url, $size = 15) { global $RSS_Content; $page = "<ul>"; RSS_RetrieveLinks($url); if($size > 0) $recents = array_slice($RSS_Content, 0, $size + 1); foreach($recents as $article) { $type = $article["type"]; if($type == 0) continue; $title = $article["title"]; $link = $article["link"]; $page .= "<li><a href=\"$link\">$title</a></li>\n"; } $page .="</ul>\n"; return $page; } function RSS_Display( $urls=array(), $size = 15, $site = 0 ) { global $RSS_Content; $site = 0; $site = (intval($site) == 0) ? 1 : 0; RSS_Retrieve( $urls ); RSS_Sort(); if($size > 0) { $recents = array_slice($RSS_Content, 0, $size); } return $recents; } function RSS_Sort() { global $RSS_Content; for( $i =0; $i < count( $RSS_Content ); $i++ ) { $array = array(); for( $j =$i+1; $j < count( $RSS_Content ) - $i; $j++ ) { if( strtotime($RSS_Content[$i]['date']) < strtotime($RSS_Content[$j]['date']) ) { $temp = array( 'channel' => $RSS_Content[$i]['channel'], 'title' => $RSS_Content[$i]['title'], 'link' => $RSS_Content[$i]['link'], 'date' => $RSS_Content[$i]['date'], //'description' => $RSS_Content[$i]['description'], 'image' => $RSS_Content[$i]['image'], 'type' => $RSS_Content[$i]['type'], ); $temp2 = array( 'channel' => $RSS_Content[$j]['channel'], 'title' => $RSS_Content[$j]['title'], 'link' => $RSS_Content[$j]['link'], 'date' => $RSS_Content[$j]['date'], //'description' => $RSS_Content[$j]['description'], 'type' => $RSS_Content[$j]['type'], 'image' => $RSS_Content[$j]['image'], ); $RSS_Content[$i] = $temp2; $RSS_Content[$j] = $temp; } } } } ?>  
    • Por martinazzo
      não consigo apagar, então deixei assim... se alguém conseguir por favor
    • Por kelvinferraz
      Boa tarde pessoal,
       
      Estou com uma dúvida e dificuldade para realizar algo que talvez seja simples para muitos, eu gostaria de gerar uma tabela numerada de 1...X porém somente quando o usuario selecionar um checkbox ele irá assumir um número, por exemplo

       
      <tr> <td class="border border-dark"> numeracao_automatica </td> <td class="border border-dark"> '. $opcaovindadocheckbox .' </td> </tr> Caso o usuario nao selecione nenhuma checkbox ele não irá atribuir nenhum número, outra coisa é se ele selecionar aleatoriamente uma lista do chekbox, ele ir numerando conforme a seleção
       
      Se alguém tiver alguma ideia ou maneira simples ou dificil de resolver ficarei extremamente grato.
       
      Obrigado a todos!
×

Informação importante

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