Ir para conteúdo
Fórum Script Brasil
  • 0

Envio De Anexo Do Formulario Para E-mail


VianeiRoberto

Pergunta

Para não criar outro tópico sobre o assunto estou editando este...

O servidor onde estou hospedando meu site forneceu um scrip: form.htm e o anexa.php para envio dos dados de formularios para o e-mail, incluindo anexo, no entanto vem uma pequena falha, no anexa ele não chamava as variáveis do arquivo form.htm.

O formulário é bem simples, contem apenas o cam "nome" e "anexo", junto vieram as orentações para configuração SMTP assim como de login para ftp e transeferencia de arquivos, esta parte acreito estar toda OK, mas o "anexo" continua não sendo enviado, o "nome" sim, será que alguém consegue indentificar o problema?

OBS.: Não estou pedindo modelo de outros scripts prontos, preciso mesmo identificar o problema deste, se alguém puder dar uma ajuda, fico muito grato.

Desde já muito obrigado pela atenção.

Seguem os scripts:

form.htm

<!-- saved from url=(0022)http://internet.e-mail -->
<html>
        <head>
                <title>E-mail com arquivo anexo</title>
                <script language="JavaScript">
                        <!--
                        function teste(){
                        if (document.form.anexo.value=="") {
                        alert("É preciso selecionar um arquivo para o Upload!")
                        document.form.anexo.focus()
                        return false
                        }
                        }
                        //-->
                </script>
        </head>
        <body>


<form name="form" method="post" action="anexa.php" enctype="multipart/form-data" onSubmit="return teste()">
Nome:<br>
<input type="text" name="nome"><br>
Arquivo: <br>
<input type="file" name="anexo"><br>
<input type="submit" name="botao" value="enviar"><br>
</form>

</body>
</html>
e anexa.php:
<?
  ##---------------------------------------------------
  ##  Envio de Emails pelo SMTP Autênticado usando PEAR
  ##---------------------------------------------------
  # Mais detalhes sobre o PEAR: 
  #   http://pear.php.net/
  #
  # Mais detalhes sobre o PEAR Mail:
  #   http://pear.php.net/manual/en/package.mail.mail-mime.php
  ##---------------------------------------------------
  
  # Faz o include do PEAR Mail e do Mime.
  include ("Mail.php");
  include ("Mail/mime.php");
  
  # Variável de teste de upload
  $up=0;

  # E-mail de destino. Caso seja mais de um destino, crie um array de e-mails.
  # *OBRIGATÓRIO*
  $recipients = 'meuemail@meuservidor.com.br';    //configurei

  # Cabeçalho do e-mail.
  $headers = 
    array (
      'From'    => 'meuemail@meuservidor.com.br'', # O 'From' é *OBRIGATÓRIO*.  //configurei
      'To'      => 'DESTINATARIO@DominioDestinatario.com',
      'Subject' => 'TITULO DO E-MAIL' 
    );

  # Utilize esta opção caso deseje definir o e-mail de resposta
  # $headers['Reply-To'] = 'EMailDeResposta@DominioDeResposta.com';

  # Utilize esta opção caso deseje definir o e-mail de retorno em caso de erro de envio
  # $headers['Errors-To'] = 'EMailDeRerornoDeERRO@DominioDeretornoDeErro.com';

  # Utilize esta opção caso deseje definir a prioridade do e-mail
  # $headers['X-Priority'] = '3'; # 1 UrgentMessage, 3 Normal  

  # Define o tipo de final de linha.
  $crlf = "\r\n";
  
  $nome = $_POST[nome];                            // eu adicionei no script pois não chamava as variaveis
  $anexo = $_POST[anexo];                           // eu adicionei no script pois não chamava as variaveis

  # Corpo da Mensagem e texto e em HTML
  $text = "Nome: ".$nome;
  $html = "<HTML><BODY><font color=blue>$text</font></BODY></HTML>";


  # Instancia a classe Mail_mime
  $mime = new Mail_mime($crlf);

  # Coloca o HTML no email
  $mime->setHTMLBody($html);

  # Efetua o upload do arquivo
  if (!empty($anexo) and is_file($anexo)) {
      $caminho="/home/meuloginftp/tmp/";                                                             //configurei
      $caminho=$caminho.$anexo_name;
      
      # grava o $arquivo no $caminho especificado
      copy($anexo,$caminho);
            echo "O arquivo foi transferido!<br>";
          $up=1;
      }else{
          echo "<h1>O arquivo não foi transferido!</h1>";
          echo "<h2><font color='red'>Caminho ou nome de arquivo Inválido</font></h2>";
          }

##  # Anexa um arquivo ao email.
  $mime->addAttachment($caminho);
    
    

  # Procesa todas as informações.
  $body = $mime->get();
  $headers = $mime->headers($headers);

  # Parâmetros para o SMTP. *OBRIGATÓRIO*
  $params = 
    array (
      'auth' => true, # Define que o SMTP requer autenticação.
      'host' => 'smtpmeusite.com.br', # Servidor SMTP                                             //configurei
      'username' => 'meuusuario=meusite.com.br', # Usuário do SMTP                      //configurei
      'password' => 'minhasenha' # Senha do seu MailBox.                                       //configurei
    );
    
  # Define o método de envio
  $mail_object =& Mail::factory('smtp', $params);

  # Envia o email. Se não ocorrer erro, retorna TRUE caso contrário, retorna um
  # objeto PEAR_Error. Para ler a mensagem de erro, use o método 'getMessage()'.
  $result = $mail_object->send($recipients, $headers, $body);
  if (PEAR::IsError($result))
  {
    echo "ERRO ao tentar enviar o email. (" . $result->getMessage(). ")";
  }   
  else
  {
    echo "Email enviado com sucesso!";
    
    if ($up==1){
        unlink($caminho);
    }
    
  }   
?>            

Editado por VianeiRoberto
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...