Jump to content


Photo

Phpmailer - Envio De Resposta Automática Com Anexo.


  • Faça o login para participar
Nenhuma resposta neste tópico

#1 Juliano Tavares

Juliano Tavares

    Novato no fórum

  • Usuários
  • 8 posts
  • Sexo:Masculino
  • Localidade:Rondonópolis-MT

Posted 13/10/2012, 20:24

Olá pessoal, depois de 3 dias de pesquisa e muita tentativa resolvi postar meu problema aqui no fórum. (Já pesquisei inclusive aqui e não achei uma solução).

A princípio é simples, estou usando a classe PHPMailer autenticando o email pelo gmail, ele envia o email do formulário para meu e-mail e automaticamente recebe uma resposta minha com um anexo, (era pra ser assim), porém não consigo encontrar o erro, abaixo vai os scripts.

orcamento.php
<?php session_start();?>
<style type="text/css">
form{padding:10px; width:640px; background:#666;}
label{display:block; margin:0 0 10px 0;}
span{font:bold 12px Tahoma, Geneva, sans-serif; color:#FFF; display:block; margin:0 0 5px 0;}
input{width:610px; padding:5px; font:14px Arial, Helvetica, sans-serif; color:#fff; border:1px solid #CCC; background:#999; margin:0 10px;}
textarea{width:610px; padding:5px; font:14px Arial, Helvetica, sans-serif; color:#fff; border:1px solid #CCC; background:#999; margin:0 10px;}
.btn{display:block; margin:0 auto; width:150px; background:#900; color:#fff; cursor:pointer; font-weight:bold;}
.alert{padding:5px; background:#FFFFBF; border:1px solid #FF0; margin:5px 5px 15px 5px; font:bold 12px Arial, Helvetica, sans-serif; color:#F30;}
</style>
<form name="email" action="" method="post">
<?php  if(isset($_POST['enviar'])){
        unset($_SESSION['enviado']);
        $assunto = strip_tags(trim($_POST['assunto']));
        $nome    = strip_tags(trim($_POST['nome']));
        $email= strip_tags(trim($_POST['email']));
        $msg = strip_tags(trim($_POST['msg']));

/* comentei a validação dos campos pra facilitar a execução do script

        if($tipo == '' || $nome == '' || $email == '' || $msg == ''){
                echo '<div class="alert">Erro: Todos os campos são obrigatórios.</div>';
        }else if(!preg_match("/^[a-z0-9_\.\-]+@[a-z0-9_\.\-]*[a-z0-9_\-]+\.[a-z]{2,4}$/i", $email)){
                        echo '<div class="alert">Erro: Informe um email válido.</div>';
        }else{
        */
                require('config.php');
                sendMail($assunto,$msg,$email,$nome,'juliano.tavaress@gmail.com','Juliano Tavares');
                sendMail('Pedido de Orçamento','obrigado por solicitar esse orçamento','juliano.tavaress@gmail.com','Juliano Tavares',$email,$nome);

        }


if(isset($_SESSION['enviado'])){
                echo $_SESSION['enviado'];
}               

?>
 <label>
 <span>*Assunto</span>
 <input type="text" name="assunto" value="<?php if(isset($assunto)){echo $assunto;}?>"/>
 </label>
 <label>
 <span>*Nome</span>
 <input type="text" name="nome" value="<?php if(isset($nome)){echo $nome;}?>" />
 </label>
 <label> <span>*E-mail</span>
   <input type="text" name="email" value="<?php if(isset($email)){echo $email;}?>" />
 </label>
 <label> <span>*Qual orçamento deseja?</span><br />
Casamento
   <input name="tipo" type="radio" value="casamento" checked />
Casal e Gestante
   <input name="tipo" type="radio" value="casalgestante"/>
Pessoal
   <input name="tipo" type="radio" value="pessoal"/>
 </label>
 <label>
   <span>*Mensagem</span>
   <textarea rows="5" name="msg"><?php if(isset($msg)){echo $msg;}?></textarea>
 </label>
 <input type="submit" name="enviar" value="Enviar Mensagem" />
</form>

config.php
<?php function sendMail($assunto,$msg,$remetente,$nomeRemetente,$destino,$nomeDestino, $is_gmail = true) { 
                define('SMTPUSER', 'juliano.tavaress@gmail.com'); // sec. smtp username
                define('SMTPPWD', '******'); // sec. password
                define('SMTPSERVER', 'smtp.gmail.com'); // sec. smtp server
                
require_once('class.phpmailer.php'); //Include pasta/classe do PHPMailer
//$mail->SetLanguage("br", "language\\");

        global $error;
        $mail = new PHPMailer();
        $mail->IsSMTP();
        $mail->SMTPAuth = true; 
        if ($is_gmail) {
                $mail->SMTPSecure = 'ssl'; 
                $mail->Host = 'smtp.gmail.com';
                $mail->Port = 465;  
                $mail->Username = GUSER;  
                $mail->Password = GPWD;   
        } else {
                $mail->Host = SMTPSERVER;
                $mail->Username = SMTPUSER;  
                $mail->Password = SMTPPWD;
        }        
$mail->From                     = $remetente; //remtente
$mail->FromName                 = utf8_decode($nomeRemetente); //remtetene nome
$mail->IsHTML(true);
$mail->Subject                  = utf8_decode($assunto); //assunto
$mail->Body                     = utf8_decode($msg); //mensagem
$mail->AddAddress($destino,utf8_decode($nomeDestino)); //email e nome do destino
$mail->WordWrap                 = 50; // Definição de quebra de linha
$mail->AddAttachment("investimento_casamento.pdf");  // Insere um anexo

        
        
        if(!$mail->Send()) {
         echo '<span>Erro ao enviar, favor entre em contato pelo e-mail MEU EMAIL!</span>';
}else{
        $_SESSION['enviado'] = '<div class="alert">Mensagem enviada com sucesso!</div>';
        
        
}
}


?>

Até aqui tá indo bem pois está enviando o email com os dados do usuario para meu email, e ele recebe uma resposta, porém, tanto eu quanto ele recebe o arquivo em anexo, notem que no formulário, tem 3 checkbox , eu não consegui encontrar uma forma de quando o usuario selecionar o checkbox casamento, seja enviado o arquivo "investimento_casamento.pdf", caso ele seleciona Casal e Gestante, seja enviado o arquivo "investimento_casal.pdf" e assim sucessivamente.

Acredito que não deve ser algo muito complexo porém não tenho tanto conhecimento e espero a ajuda de vocês, obrigado.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq