| Maior acervo de vídeo aulas da web

Não consegue visualizar a vídeo aula?

Enviando Anexo com PHPMailer

Salve amigos do VAB, como prometido, iremos aprender a como utilizar a classe PHPMailer com um formulário de contato com anexo enviando por smtp autenticado. Aprenderemos desde validar os dados, até como utilizar a pesquisa para ajudar nessa missão. Espero que gostem, e boa Aula.

Script Criado:Veja o script

Criando e Estilizando Formuláriohttp://www.videoaulasbrasil.com.br/tableless/criando-e-estilizando-formulario/

PHPMailer :http://phpmailer.worxware.com/

Você gostou dessa Vídeo Aula, então compartilhe com seus amigos

Artigos Relacionados

Comentários

  • Rafael

    Parabéns David! Mais uma excelente vídeo aula.

  • Joao Sousa

    Muito Boa Video-aula Parabéns

  • Lorran

    Muito boa aula, era essa que eu precisava! Didática excelente.

  • http://www.equipedgm.com.br Fabricio

    Excelente video-aula.

  • Guilherme

    Parabens david muito bom mesmo.
    não tem como postar o codigo utilizado na video aula?

    • http://www.videoaulasbrasil.com.br David CHC

      @Guilherme, vou colocar o link para o código.

  • http://tutorial-city.net Tutorial City

    Tem que tomar um pouco de cuidado com os Mimetypes, por que nem todos os navegadores reconhecem todos os tipos.
    ——
    Acho melhor usar Switch-Case ao invés de tantos If/Else… acho mais lógico.
    ——
    Poderia retornar com os valores no formulário quando não fossem validados, pra evitar que o usuário tenha que digitar tudo de novo.
    ——
    Ao invés de usar o ‘code’ do mx masters, posta os snippets no Pastebin, eles colorizam e fica mais fácil de entender.
    ——
    Ótimo tutorial ;)
    Abraços

    • http://www.videoaulasbrasil.com.br David CHC

      @Rafael, @Joao Sousa, @Lorran,@Fabricio. vlw

      @Tutorial City, alguns navegadores vc quer dizer o IE, rs, com image/jpeg e no IE image/pjpeg, rs. Realmente eu não fiz uma pesquisa sobre saber os comportamentos diferentes dos navegadores com mime-type, só conheço as algumas loucuras do IE, mas se vc tiver conhecer algum fonte sobre isso, posta ai.

      Sobre if/elseif/else, principalmente nesse caso, onde tem varios tipos de informações diferentes, nome, email, arquivo, acho melhor usar o if/elseif, se fosse no caso de uma informação única, onde precisaria verifica como varias condições dessa mesma informação, exemplo básico, transformar a data em inglês para português, ai prefiro usar o Switch. E tbm nesse caso, pra ter o ultimo estagio o envio em si. Mas cada ver de um ótica diferente, ainda bem,rs.

      Sobre o caso de retornar dados para com valores para os campos, sim é mais comodo para o usuário se puder retorna os últimos valores, principalmente se tiver muitos campos. Em caso de cadastro de algo, eu prefiro zerar tudo caso de erro, o usuário vai ficar muito bravo (até com razão), mesmo assim, pode diminui dores de cabeça de alguém ter acesso a informações deles, principalmente no caso de acesso a lan house, não elimina o problema, mas diminui. (Quando digo q não confio no usuário, é ao extremo, rs)

      Sobre o poste código, eu pretendo postar tbm no pastebin, mas preferencialmente no Forum, pq muitas pessoas não conhecem, a passam a conhece-los devido as vídeo aulas.

      Vlw pelas dicas, e qualquer coisa posta ai nos comentários. abrs

  • http://www.webgti.com.br Felipe Girotti

    Mais uma super video aula, eu não sabia dos parametros corretos do AddAttachment, eu primeiro usava o move_uploaded_file para colocar no servidor depois mandar pro email pra depois deletar ela com unlink. Assim é muito mais fácil. Vlw

    • http://www.videoaulasbrasil.com.br David CHC

      @Felipe Girotti, realmente com PHPMailer é muito facil enviar anexo. Mas caso vc deseje ter uma copia de segurança do arquivo no servidor, pode fazer dois, só q tem q lembrar q vai aumentar o tempo de execução, e tempo de morado q o usuário vai te q esperar. NO caso de arquivo, é legal trabalhar com barra de upload, e recomendo uploadify c é muito bom, e fácil de implementar no seu sistema. vlw

  • Rubia

    Parabéns David! Cada dia melhor! Vc tem me ajudado muito com sua video aulas!Obrigada!

  • http://www.descricaodorock.com.br Gilberto JR

    Boa noite David, parabens pelos materias que vc tem disponibilizado no site VBA. Minha pergunta é o seguinte, com esse aplicativo tem como eu enviar multiplos anexos?

    • http://www.videoaulasbrasil.com.br David CHC

      Muito obrigado @Rubia

      @Gilberto JR, sim é possivel, basta acrescentar mais itens.


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

      Quantos q vc quiser.

  • http://www.descricaodorock.com.br Gilberto JR

    Valeu cara,

  • http://tutorial-city.net Tutorial City

    @David CHC
    até um tempo atráso Chrome não reconhecia o mimetype de arquivos zipados… não sei se mudou, mas um dia foi assim. Pra ter 100% de certeza é sempre bom testar nos principais navegadores, e os que não reconhecem o que vc quer é só vc impedir de realizar o processo (mas é bom deixar claro, pro usuário não preencher a toa).

    Abraços

    • http://www.videoaulasbrasil.com.br David CHC

      @Tutorial City, essa do chrome eu não sabia. A única alternativa é tentativa e erro. abrs

  • Anderson Coimbra

    Olá David…
    Comecei a usar o PHPMailer…fiz as configurações como informado na vídeo aula. Os e-mails estavam chegando corretamente porém, de uma hora pra outra começou a chegar com spam, o q pode ser?

    • http://www.videoaulasbrasil.com.br David CHC

      @Anderson Coimbra, isso pode ocorre se vc estiver a mesma mensagem varias vezes, como o mesmo titulo, sua hospedagem pode classificar isso como spam. Algumas hospedagem pode classficar por determinadas palavras q a mensagem é spam, isso vai se dá politica de spam que eles tem. Tente mudar a mensagem, e o titulo, e envie de novo.

      Lembrando, que mesmo enviando por smtp autenticado, não garante que não será classificado como spam, mas reduz muito as chances

  • Leonardo

    David, vi que algumas hospedagens pedem pra substituir a função mail() por
    Persits.MailSender. Usando phpmailer tenho o mesmo resultado? Ou é recomendado utilisar Persits.MailSender mesmo?

    • http://www.videoaulasbrasil.com.br David CHC

      @Leonardo cada hospedagem te suas regras. Quando vc configura seu programa de editor de email, o email será por SMTP, então vc pode usar o PHPMailer. Mas consulte antes sua hospedagens, para poder ter detalhes do SMTP, porta de envia, se precisa se autenticado, se precisa se habilitado SSL.

  • http://www.krcomunicacao.com.br Tuco

    David, boa noite!
    Fiz tudo o que vc passou na video aula, mas não sei se é minha conexão, mas ele ao envia a mensagem. Diz que esperou 30 segundos e abortou a requisição.
    Coloquei no meu servidor, e o mesmo não reconhece a string “filter_var”…. preciso pedir para atualizarem o PHP do meu servidor ou há alguma maneira de corrigir esse erro?
    Brigadão cara!
    Abraços!

    • http://www.videoaulasbrasil.com.br David CHC

      @Tuco, o função filter_var funciona para PHP 5 e superiores. Se sua hospedagem, for PHP4, tem q fazer um upgrade. Entre em contato com sua hospedagem. Vc pode testar localmente o script, se estiver enviando por smtp. Verifique os dados com sua hospedagem das configurações corretas.

  • Mauro Galvão

    Olá David, queria parabenizar pelo seu vídeo e pelo seu trabalho, isso é muito útil e ajuda muita gente ainda mais com as explicações detalhadas e as possíveis mudanças na implementação que você explica também caso alguém queira mudar algo no código. Após implementar esse sistema, eu verifiquei que vem com problemas na acentuação, como não queria lhe incomodar a princípio começei a procurar na net uma solução, tentei várias e nada adiantou, tentei a mudança do charset
    “utf-8″, “ISO-8859-1″ tentei o utf8_decode(string) e nada resolve, teria como você me ajudar a resolver isso? Qualquer coisa pode entrar em contato pelo email cadastrado no comentário.
    Desde já agradeço.

    • http://www.videoaulasbrasil.com.br David CHC

      @Mauro Galvão, o PHPMailer por padrão usar o charset=iso-8859-1, mas vc pode alterá-lo para utf-o:

      $mail->CharSet = ‘utf-8′;

      Vc tem está sempre com tudo com mesmo charset, pra q não ocorra esse problema. Se sua página e iso-8859-1, o charset do PHPMailer tbm tem q ser.

  • Mauro Galvão

    David, muito obrigado pela sua disponibilidade em nos ajudar, está solucionado o problema, que você seja melhor cada vez mais.

    Abraço.

  • Rubens Junior

    Se eu nao validar os campos, da certo do mesmo jeito?

    • http://www.videoaulasbrasil.com.br David CHC

      @Rubens Junior, vai enviar da mesma maneira, mas sempre é bom validar.

  • Philipe

    O meu esta dando erro
    Fatal error: Call to undefined method PHPMailer::SetFrom() in C:\wamp\www\HTML\EnviarForm.php on line 70

    alguem sabe como conserta?obrigado ATT

    • http://www.videoaulasbrasil.com.br David CHC

      @Philipe, isso quer dizer q esse metodo não existe, vai depender q versão vc baixou, no caso vc pode substituir por

      $mail->From = ‘nome@email.com.br’;
      $mail->FromName = ‘NOme da Pessoa que está enviando’;

  • http://www.amplivox.com.br Ricardo

    Olá David, eu queria que no corpo deste e-mail mostrasse o arquivo .jpeg, ou seja, que quando pessoa abra o e-mail já veja o arquivo…o arquivo anexado ao e-mail. Obrigado

    • http://www.videoaulasbrasil.com.br David CHC

      @Ricardo, a melhor maneira é vc coloca a imagem na sua hospedagem, e colocar o endereço completo:

      src=”http://www.seusite.com.br/imagens/foto.jpg”

  • http://www.amplivox.com.br Ricardo

    ok, obrigado! Muito boa vídeo aula…

  • Ademir

    David , quando vc clica no botão para enviar se o campo estiver com erro ele apaga tudo, como faço para que o campo anterior permaneça com os dados digitados.

    • http://www.videoaulasbrasil.com.br David CHC

      @Ademir, vc pode fazer a validação via Javascript, assim ele não vai apagar o q foi digitado.

  • Andrea

    David, boa noite, obrigada por seu tempo e pela ÓTIMA AULA… eu criei o form e o envia.php, so que ao final de tudo, mesmo apos ele dar as mensagens que preciso preencher campos nomes, email valido etc e etc, apos eu preencher todos os campos e inserir um anexo em JPEG da a mensagem em 2 linhas de erro>

    duas linhas de erro:
    Warning: require(PHPMailer/class.phpmailer.php) [function.require]: failed to open stream: No such file or directory in E:\vhosts\rh17.com.br\httpdocs\enviar.php on line 27

    Fatal error: require() [function.require]: Failed opening required ‘PHPMailer/class.phpmailer.php’ (include_path=’.;./includes;./pear’) in E:\vhosts\rh17.com.br\httpdocs\enviar.php on line 27

    Sendo que tal linha 27 contem>:

    require(‘PHPMailer/class.phpmailer.php’);

    Eu fiz o download do link http://phpmailer.worxware.com/
    e to jogando os arquivos dentro de uma pasta chamada phpmailer, no servidor , como subdiretorio da minha httpdocs…
    Onde posso ter errado?

    Obrigada!

    • http://www.videoaulasbrasil.com.br David CHC

      @Andrea já estou te respondendo lá no MxMasters


Hospedado por Hostnet - Hospedagem de sites

VAB - Todos os direitos reservados - 2008 / 2012

Developed by: MX Web Studio

Mais em PHP (161 of 198 articles)