Como enviar anexo por email em formulário HTML
Alguns clientes gostariam de ter um formulário no site, e receber um arquivo em anexo por email.
Todos os códigos estão disponíveis aqui: https://github.com/vanildosouto/formulariocomanexo
No nosso exemplo teremos um site de uma farmácia de manipulação que deseja ter um formulário no site, onde um usuário vai preencher os dados e enviar a receita para orçamento. Esses dados devem ser enviados por email.
Começamos com o html do formulário:
|
|
Aqui o mais importante é o atributo enctype
no qual permitimos o envio de arquivos.
Agora adicione a rota /enviar
no Slim, e a dependencia dessa classe.
rota
|
|
dependencia
|
|
Então vamos criar a classe que vai responder a tudo isso.
Na linha 30, verificamos se foi enviado um arquivo mesmo.
Na linha 42, verificamos se o arquivo está na lista de tipos de arquivos permitidos no array na linha 36.
Na linha 50 e 51 pegamos a extensão do arquivo.
Na linha 53 usamos a função tempnam do PHP para criar um nome aleatório para o arquivo. O primeiro argumento deve ser uma pasta temporária, isso vai depender do seu serviço de hospedagem, o segundo parametro é um prefixo que será inserido ao nome do arquivo. Também concatenamos com a extensão do arquivo original.
Na linha 55 movemos o arquivos para essa pasta temporaria.
Com essa informação em mãos fica fácil fazer o envio de email. É só fazer o email normal e adicionar esse arquivo como anexo usando o addAttachment
do PHPMailer. Fazemos isso na linha 60.
E é isso. Fiquem a vontade para deixar dúvida aqui ou lá no Github.
Até a próxima!