Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite Galera,
Espero que alguem possa me ajudar.
Seguinte eu possuo um Formulário que envia e-mails para varios destinatarios diferente, esta tudo funcionando perfeitamente sendo que preciso que este formulario envie um arquivo em anexo
segue o codigo
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">font-family: Verdana, Geneva, sans-serif;
font-size: 10px;
color: #069;
}</style></head>
<body>
<?php/**
* Aqui testamos se a extensão openssl foi carregada, pois ela é necessária para o envio.
* Caso ela não tenha sido carregada, ou seja, não esteja habilitada, vai encerrar o processamento.
*/
if(!extension_loaded('openssl'))
{
die('A extensão OpenSSL não está habilitada no seu PHP.INI. Habilite-a e tente novamente.');
}
// adicione os emails a serem utilizados
$destinos = array(
'Bruno Simonin' => 'brunosimonin@yahoo.com.br',
'Bruno da Costa' => 'brunosimonin2@isp.rj.gov.br',
'Bruno Simonin da Costa' => 'brunosimonin1981@gmail.com',
'Bruno S. da Costa' => 'brunosimonin2@hotmail.com',
);
// Usuário do gmail
$username = 'brunosimonin@gmail.com';
// Senha do usuário do proderj
$password = '******';
// E-mail que vai aparecer como remetente
$from = 'brunosimonin@gmail.com';
// Nome que vai aparecer como remetente
$fromName = 'Ata de Reunião';
/**
* Início da validação. Estamos validando somente se está setado e escapando aspas.
* Faremos a mesma coisa para todos os campos.
*
*/
$erro = '';
// Testamos se o formulário foi enviado. Necessário para que não exiba mensagem de erro no primeiro
// acesso
if(isset($_POST['enviar']))
{
// Setamos $gpc como get_magic_quotes_gpc. Se existir, terá valor true. Caso contrário, será false
$gpc = get_magic_quotes_gpc();
// Validação campo Nome
if(isset($_POST['Nome']) && !empty($_POST['Nome']))
{
// Aqui estamos verificando se não está habilitado magic_quotes_gpc, escapa as aspas simples com addslashes.
$nome = ($gpc) ? $_POST['Nome'] : addslashes($_POST['Nome']);
}
else
{
$erro .= '- Preencha o Nome.<br/>';
}
// Validação campo E-mail. Validamos também o formato, usando expressão regular
if(isset($_POST['E-mail']) && !empty($_POST['E-mail']))
{
// Aqui estamos verificando se não está habilitado magic_quotes_gpc, escapa as aspas simples com addslashes.
$email = ($gpc) ? $_POST['E-mail'] : addslashes($_POST['E-mail']);
// Aqui validamos se o e-mail é válido, utilizando expressão regular.
if (!preg_match ('/^[A-Za-z0-9]+([_.-][A-Za-z0-9]+)*@[A-Za-z0-9]+([_.-][A-Za-z0-9]+)*\\.[A-Za-z0-9]{2,4}$/', $email))
{
$erro .= '- E-mail Inválido.<br/>';
}
}
else
{
$erro .= '- Preencha o E-mail<br/>';
}
// Validação campo Destinatário
if(isset($_POST['Destinatario']) && !empty($_POST['Destinatario']))
{
// Aqui estamos verificando se não está habilitado magic_quotes_gpc, escapa as aspas simples com addslashes.
foreach ($_POST['Destinatario'] as $valor)
{
// Aqui adicionamos o radical do e-mail.
$destinatario[] = ($gpc) ? $valor : addslashes($valor);
}
}
else
{
$erro .= '- Selecione pelo menos 1 Destinatario<br/>';
}
// Validação campo Assunto
if(isset($_POST['Reuniao']) && !empty($_POST['Reuniao']))
{
// Aqui estamos verificando se não está habilitado magic_quotes_gpc, escapa as aspas simples com addslashes.
$reuniao = ($gpc) ? $_POST['Reuniao'] : addslashes($_POST['Reuniao']);
}
else
{
$erro .= '- Preencha a Reunião.<br/>';
}
}
/**
* Aqui testamos se o formulário foi enviado e se não existe erro nele.
* Caso seja válido, entramos na rotina de enviar o e-mail
*/
if(isset($_POST['enviar']) && empty($erro))
{
// aqui incluímos a pasta onde está a classe PhpMailer no include_path
set_include_path('PHPMailer'. PATH_SEPARATOR .get_include_path());
// incluímos a classe phpmailer. Não utilizamos a pasta onde ela está porque já incluímos anteriormente
include 'class.phpmailer.php';
/**
* Aqui definimos o corpo do e-mail.
*/
$conteudo = '
<html>
<body>
<h1>Contato enviado pelo site</h1>
<b>Nome</b> - '.$nome.'<br/>
<b>E-mail</b> - '.$email.'<br/>';
$conteudo .= '<b>Destinatários</b> - '.implode(' , ',$destinatario).'<br/>
<b>reuniao</b>'.$reuniao.'<br/>';
// Instanciamos a classe PHPMailer
$mail = new PHPMailer();
// Aqui definimos o charset do e-mail a ser enviado.
$mail->CharSet = 'UTF-8';
//Definimos que é SMTP
$mail->IsSMTP();
//Definimos que utilizaremos HTML
$mail->IsHTML(true);
// habilitamos autenticação SMTP
$mail->SMTPAuth = true;
// seta o prefixo ssl
$mail->SMTPSecure = 'ssl';
// seta como servidor SMTP
$mail->Host = 'smtps.gmail.com.br';
// seta a porta SMTP
$mail->Port = 465;
// Nome de usuário do Gmail
$mail->Username = $username;
// Senha do usuário do Gmail
$mail->Password = $password;
// Aqui você coloca o e-mail que vai aparecer como remetente
$mail->From = $from;
// Aqui você coloca o nome que vai aparecer como remetente
$mail->FromName = $fromName;
// Aqui vai a variável que tem o assunto, que vem do formulário
$mail->Subject = $reuniao;
// Seta o WordWrap
$mail->WordWrap = 50;
// Aqui vai o e-mail da pessoa que enviou o contato, para resposta
$mail->AddReplyTo($email,$nome);
// Aqui varremos o array $destinatario para adicionar os e-mail selecionados
foreach($destinatario as $destino)
{
$mail->AddAddress($destino);
}
// Aqui enviamos o e-mail. Caso apresente algum erro, vai exibi-lo.
if(!$mail->Send())
{
echo 'Erro ao enviar e-mail: ' . $mail->ErrorInfo;
}
else
{
echo 'Ata de Reunião foi enviada com sucesso.';
unset($_POST);
}
}
?><html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Formulário de Envio</title>
</head>
<body>
<h1>Formulário</h1>
<form id="contato" name="contato" method="post" onsubmit="entrar()" action="<?php echo $_SERVER['PHP_SELF']?>">
<label><strong>Responsavel*</strong><br />
<input name="Nome" type="text" id="Nome" value="<?php echo (isset($_POST['Nome'])) ? $_POST['Nome']: '' ; ?>" size="50" maxlength="50" /></label><br />
<label><strong>E-mail*</strong><br />
<input name="E-mail" type="text" id="E-mail" value="<?php echo (isset($_POST['E-mail'])) ? $_POST['E-mail']: '' ; ?>" size="50" maxlength="50" /></label><br />
<br />
<label><strong>Titulo Reunião*</strong><br />
<input name="Reuniao" type="text" id="reuniao" value="<?php echo (isset($_POST['reuniao'])) ? $_POST['reuniao']: '' ; ?>" size="50" maxlength="50" /></label><br /><br />
<input name="Reuniao" type="text" id="reuniao" value="<?php echo (isset($_POST['reuniao'])) ? $_POST['reuniao']: '' ; ?>" size="50" maxlength="50" /></label><br /><br />
<strong>Destinatário*</strong><br />
<?php
// aqui fazemos o preenchimento dos e-mail.
foreach ($destinos as $chave => $valor)
{
echo '<label><input type="checkbox" name="Destinatario[]" value="'.$valor.'" id="destinatario_0"';
echo (isset($_POST['Destinatario']) && in_array($valor,$_POST['Destinatario'])) ? 'checked="checked" ' : '' ;
echo '/>'.$chave.'</label><br />';
}
?>
<br />
<a href="teste.php" target="_blank">e-mail</a><br /><br />
<label>Anexo:</label>
<input type="file" name="arquivo" id="arquivo" value="<?php echo (isset($_FILES['arquivo'])) ? $_FILES['arquivo']: '' ; ?>" /><br /><br/>
<label><input type="submit" name="enviar" id="enviar" value="Enviar" /></label>
<div id="erro">
<?php
/**
* Aqui testamos. Se a $erro não estiver vazia, significa que temos erro no preenchimento do formulário,
* então exibimos os erros no preenchimento.
* Para formatar a mensagem, formate o #erro no seu CSS.
*/
echo (!empty($erro)) ? 'Foram encontrados erros no preenchimento do formulário<br/>'.$erro : '' ;
?>
</div>
</form>
</body>
</html>
ninguem?
Carregando comentários...