Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- error_reporting(E_ALL);
- ini_set('display_errors', '1');
- require_once 'phpmailer/PHPMailerAutoload.php';
- $config = array(
- 'smtp' => array(
- 'host' => 'ssl://smtp.host.com',
- 'port' => 465,
- 'username' => 'nome@dominio.com.br',
- 'password' => 'senha',
- ),
- 'campos' => array(
- 'nome' => array('nome' => 'Nome', 'obrigatorio' => true),
- 'email' => array('nome' => 'Email', 'obrigatorio' => true),
- 'telefone' => array('nome' => 'Telefone', 'obrigatorio' => false),
- 'empresa' => array('nome' => 'Empresa', 'obrigatorio' => false),
- 'uf' => array('nome' => 'UF', 'obrigatorio' => true),
- 'cidade' => array('nome' => 'Cidade', 'obrigatorio' => true),
- 'medidas' => array('nome' => 'Medidas', 'obrigatorio' => false),
- 'quantidade' => array('nome' => 'Quantidade', 'obrigatorio' => false),
- 'linha-de-preferencia' => array('nome' => 'Linha de preferência', 'obrigatorio' => false),
- 'msg' => array('nome' => 'Mensagem', 'obrigatorio' => true)
- ),
- 'envio' => array(
- 'destinatarios' => array('destinatario@dominio.com.br'),
- 'destinatariosOculto' => array('destinatario-oculto@dominio.com.br'),
- 'assunto' => 'Assunto do Email'
- )
- );
- // validaCampos - Valida se os campos obrigatórios foram penchidos corretamente
- function validaCampos($campos){
- foreach($campos as $key => $campo) {
- if($campo['obrigatorio'] && (!isset($_POST[$key]) || $_POST[$key] == '') ){
- return false;
- }
- }
- return true;
- }
- // response - Retorna o usuário para url principal com uma msg de erro
- function response($status, $msg){
- header("Location: ../index.html?contato=".$status."&msg=".$msg."&v=2");
- exit;
- }
- // generateBodyMail - Gera o corpo do email com base nos campos do array
- function generateBodyMail($campos){
- $body = '';
- foreach($campos as $key => $campo) {
- if(isset($_POST[$key]) && $_POST[$key] != ''){
- $body .= $campo['nome'] . ": " . $_POST[$key] . "\r\n";
- }
- }
- return $body;
- }
- // Valida os campos do formulário
- if(validaCampos($config['campos'])){
- // PHPMailer Configuração
- $mail = new PHPMailer();
- $mail->SetLanguage("br");
- $mail->CharSet = "utf-8";
- $mail->IsSMTP();
- $mail->SMTPSecure = 'ssl';
- $mail->Host = $config['smtp']['host'];
- $mail->Port = $config['smtp']['port'];
- $mail->SMTPAuth = true;
- $mail->Username = $config['smtp']['username'];
- $mail->Password = $config['smtp']['password'];
- // Definição de remetente/destinatario/assunto
- $mail->AddReplyTo($_POST['email'], $_POST['nome']);
- $mail->FromName = $_POST['nome'];
- $mail->From = $config['smtp']['username'];
- $mail->Subject = $config['envio']['assunto'];
- $mail->Body = generateBodyMail($config['campos']);
- // Adiciona o array de destinatarios
- foreach($config['envio']['destinatarios'] as $destinatario){
- $mail->AddAddress($destinatario);
- }
- // Adiciona o array de destinatarios oculto
- foreach($config['envio']['destinatariosOculto'] as $destinatario){
- $mail->AddCC($destinatario);
- }
- // Verifica se uma imagem foi selecioada validando o tipo e tamanho permitidos
- if (isset($_FILES['arquivo']) && $_FILES['arquivo']['error'] == UPLOAD_ERR_OK) {
- if($_FILES['arquivo']['type'] != 'image/jpeg' && $_FILES['arquivo']['type'] != 'image/png' && $_FILES['arquivo']['type'] != 'application/pdf'){
- response('erro', 'Tipo de arquivo invalido, utilize JPG, PNG ou PDF.');
- }
- else if($_FILES['arquivo']['size'] > 2000000){
- response('erro', 'O tamanho máximo do arquivo deve ser 2MB');
- }
- else{
- $mail->AddAttachment($_FILES['arquivo']['tmp_name'], $_FILES['arquivo']['name']);
- }
- }
- // Realiza o envio do email
- if(!$mail->send()) response('erro', 'Erro ao enviar formulário');
- else response('sucesso', '');
- }
- else response('erro', 'Erro ao enviar formulário, preencha corretamente os campos');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement