Jump to content


Photo

Enviar E-Mail Com Anexo (Atualizado!)


  • Faça o login para participar
96 replies to this topic

#1 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 22/06/2005, 08:41

Nome: Mail_attach
Versão: 20100212
Funcionalidade: Enviar e-mail com anexo através de um formulário de contato.
Visualização: http://paulorodrigue...attach/form.php (Manterei este teste online por pouco tempo)
Observações: Classe bastante "seca", contendo somente funcionalidade básica no envio de e-mail com anexo.

Exemplo de utilização:
<!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>Envio de e-mail com anexo</title></head><body>	<?php        if ($_POST) {            require('class/Mail_attach.php');                        $attach = new Mail_attach($_POST['from'], $_POST['to'], $_POST['subject'], $_POST['message']);            			if ($attach->sendMail($_FILES['attach'])) {                echo 'E-mail enviado com sucesso!';            } else {                echo 'Erro ao anexar arquivo ou enviar e-mail.';            }        }    ?>        <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">        <fieldset>            <p>                <label><input type="text" name="from" /> Remetente</label>            </p>                        <p>                <label><input type="text" name="to" /> Destinatário</label>            </p>                    <p>                <label><input type="text" name="subject" /> Assunto</label>            </p>                    <p>                <input type="file" name="attach" />            </p>                <p>                <textarea cols="30" rows="7" name="message"></textarea>            </p>                        <p><input type="submit" value="Enviar" /></p>        </fieldset>        </form></body></html>
Até mais

Attached Files


Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#2 alandebortolo

alandebortolo

    <? echo NOW() ?>

  • Usuários
  • 97 posts
  • Sexo:Não informado
  • Localidade:Colatina - ES
  • Interesses:PHP &amp; Fireworks

Posted 04/07/2005, 11:31

Amigo. Gostei muito do seu script. Mas tenho uma dúvida. Como eu faço para inserir mais campos? Radio Buttons e Check box? Também combobox e áreas de texto?

E estas irem hierarquizadas no corpo do e-mail?

Aguardo resposta.
Conheçam:
Portfolio: DesignMaster
Faça seu AgitoFlog: AgitoFlog.com.br
Site de trabalho: EuAgito.com.br

"A mentira tem perna curta, barba branca e não tem 1 dedo"


#3 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 04/07/2005, 13:46

é só adicionar os campos adicionais à variavel $message.. por exemplo:

............$message .= "Content-Transfer-Encoding: 8bits\n";
$message .= "Content-Type: text/plain; charset=\"ISO-8859-1\"\n\n";
$message .= $body;
$message .= $radio;
$message .= $textarea;

$message .= "\n";

$attachments[1] = $anexo;

foreach ($attac...........


onde está destacado seriam as variaveis para os campos novos q vc adicionou...

flws...
;)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#4 GreyWolf

GreyWolf

    Mestre

  • Usuários
  • 674 posts
  • Sexo:Não informado

Posted 08/07/2005, 14:17

Ae hell...

Eu tentei modificar o modo como o anexo é enviado, pois só imagens serão enviadas e fiz o seguinte:

$arquivo = 'email_img/anexo';
if( file_exists($arquivo . ".jpg") ) $anexo = "email_img/anexo.jpg";
elseif( file_exists($arquivo . ".png") ) $anexo = "email_img/anexo.png";
elseif( file_exists($arquivo . ".jpeg") ) $anexo = "email_img/anexo.jpeg";
elseif( file_exists($arquivo . ".gif") ) $anexo = "email_img/anexo.gif";


O resto fica igual..

Problema é que envia com um nome todo estranho que renomeando pra .jpg ele aparece a imagem ¬¬

Já revirei, já li e não achei nada.

----------

Consegui xP

#5 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 11/07/2005, 16:51

ai vc teria q fazer uma condição assim....
$extensao = substr($anexo_name,-3);
if ($extensao != "jpg" && $extensao != "png" && $extensao != "jpeg" && $extensao != "gif" && $anexo_name != ""){
echo "Só é possível o envio de arquivos do tipo *.jpg, *.png, *.jpeg ou *.gif.<br>";
}else{

$mensagem=mail($to, $subject, $message, $headers);
}

Flws...
;)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#6 GreyWolf

GreyWolf

    Mestre

  • Usuários
  • 674 posts
  • Sexo:Não informado

Posted 11/07/2005, 17:06

¬¬
É um arquivo jpg que é enviado..

Você esqueceu de fazer uma rotina pra verificar a extensao pra por no $anexo_name e type ;P

#7 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 11/07/2005, 17:22

o q eu intendi q vc quer fazer é verificar se o arquivo é uma imagem (extensao jpg, jpeg, gif, png) o e-mail só é enviado com uma dessas extensões... isso q eu fiz, isso q eu intendi....

entao explique-se melhor...

flws...
:huh: Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#8 GreyWolf

GreyWolf

    Mestre

  • Usuários
  • 674 posts
  • Sexo:Não informado

Posted 13/07/2005, 14:27

Já expliquei, e ja mostrei o que faltou pra arrumares hehe ;P

#9 portaldavaca

portaldavaca

    Turista

  • Usuários
  • 32 posts
  • Sexo:Não informado

Posted 23/07/2005, 20:23

Ae, sou novato nisso ainda. Eu tentei usar aqui e nao deu. Vejam como eu coloquei:

<FORM METHOD="post"  ENCTYPE="multipart/form-data">
<INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="1000000">
<INPUT TYPE="hidden" NAME="action" VALUE="upload">
<TABLE BORDER="1">

<TR>
  <TD>De: </TD>
  <TD><input type="text" name="from" size=40><BR></TD>
</TR>

<TR>
  <TD>Para: </TD>
  <TD><input type="text" name="to" size=40><BR></TD>
</TR

<TR>
  <TD>Assunto: </TD>
  <TD><input type="text" name="subject" size=40><BR></TD>
</TR

<TR>
  <TD>Cc: </TD>
  <TD><input type="text" name="cc" size=40><BR></TD>
</TR

<TR>
  <TD>Bcc: </TD>
  <TD><input type="text" name="bcc" size=40><BR></TD>
</TR


<TR>
  <TD>Mensagem: </TD>
  <TD><TEXTAREA NAME="body" ROWS="10" COLS="50"></TEXTAREA></TD>
</TR>

<TR>
  <TD>Anexo: </TD>
  <TD><INPUT TYPE="file" NAME="anexo"></TD>
</TR>

<TR>
  <TD COLSPAN="2"><INPUT TYPE="submit" VALUE="Enviar"></TD>
</TR>
</TABLE>
</FORM>
<?

if ($action = "upload")

{
$mime_list = array("html"=>"text/html","htm"=>"text/html", "txt"=>"text/plain", "rtf"=>"text/enriched","csv"=>"text/tab-separated-values","css"=>"text/css","gif"=>"image/gif");

$ABORT = FALSE;

$boundary = "XYZ-" . date(dmyhms) . "-ZYX";

$message = "--$boundary\n";
$message .= "Content-Transfer-Encoding: 8bits\n";
$message .= "Content-Type: text/plain; charset=\"ISO-8859-1\"\n\n";
$message .= $body;
$message .= "\n";

$attachments[1] = $anexo;

foreach ($attachments as $key => $full_path) {
if ($full_path !='') {
      if (file_exists($full_path)){
            if ($fp = fopen($full_path,"rb")) {
                    $filename = array_pop(explode(chr(92),$full_path));
                    $contents = fread($fp,filesize($full_path));
                    $encoded = base64_encode($contents);
                    $encoded_split = chunk_split($encoded);
                    fclose($fp);
                    $message .= "--$boundary\n";
                    $message .= "Content-Type: $anexo_type\n";
                    $message .= "Content-Disposition: attachment; filename=\"$anexo_name\" \n";
                    $message .= "Content-Transfer-Encoding: base64\n\n";
                    $message .= "$encoded_split\n";
            }
            else {
            echo "Impossível abrir o arquivo$key: $filename";
            $ABORT = TRUE;
            }
      }
      else {
      echo "O arquivo$key não existe: $filename";
      $ABORT = TRUE;
      }

}
}

$message .= "--$boundary--\r\n";

$headers = "MIME-Version: 1.0\n";
$headers .= "From: <$from>\r\n";
$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n";


$mensagem=mail($to, $subject, $message, $headers);
if ($mensagem) {
  print "Mensagem enviada!";

} else {
  print "O envio da mensagem falhou!";
}

}
?>



E deu errado pq o email nao é confirmado...
se alguém puder me ajudar, eu agradeceria mto!

valeu
Entrem em www.portaldavaca.com.br

Contato:
Msn: portaldavaca@hotmail.com
ICQ: 323822775

#10 portaldavaca

portaldavaca

    Turista

  • Usuários
  • 32 posts
  • Sexo:Não informado

Posted 23/07/2005, 22:15

dúvida esclarecida!

:P
Entrem em www.portaldavaca.com.br

Contato:
Msn: portaldavaca@hotmail.com
ICQ: 323822775

#11 Takahata

Takahata

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Não informado

Posted 29/07/2005, 16:41

eu reparei que algumas extensoes nao sao enviadas
e como eu faço pra por um tipo de "seguro" pra ter certeza q a pessoa vai preencher tds os espaços necessarios?

#12 gabrielsilva14

gabrielsilva14

    Novato no fórum

  • Usuários
  • 3 posts
  • Sexo:Não informado

Posted 19/08/2005, 03:41

gebte.. mais esse sript envia o anexo para o e-mailk digitado no cmapoo e-mail???

pq eu num axei onde poe o meu e-mail la... num...

me ajudem.. tbm numa coisa.. como q eu ponho para o pessoal enviar para o meu e-mail o anexo..

#13 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 19/08/2005, 09:19

esconda o input "from" e coloque o valor no value dele seu e-mail....

Flws...
(y) Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#14 beraldosjc

beraldosjc

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado

Posted 23/09/2005, 09:53

Olá meu irmão paz seja convosco. A minha dúvida é a seguinte: Estou começando a entender a linguagem PHP instalei até uma loja, tenho visto muitos sripts na net pra baixar só que a grande dificuldade é que a maioria deles não esplicam aonde deve ser inserido o código do script. E como sabemos um pequeno erro de algum comando compromete o sitema todo.Gostaria de contar com sua experiência e boa vontade para que vc possa me ajudar da maneira que vc puder ok? Me informando da melhor maneira que vc puder. Qualquer coisa se vc puder entre em contato comigo.

msn: midiavale@midiavale.com.br
Adalberto Beraldo Simões
Midia Vale - Propaganda e Publicidade
Msn: midiavale@hotmail.com.br
e-mail: midiavale@midiavale.com.br

#15 beckaum

beckaum

    Turista

  • Usuários
  • 47 posts
  • Sexo:Não informado

Posted 06/02/2006, 14:48

tentei adaptar o seu script ao meu formulário, ele manda certinho, só que não chega nd no meu e-mail.

será qui o motivo é qui o e-mail pra onde está mandando é do hotmail?

ai vai o código
<?
if ($action != "upload")
{


print '<form  method="POST"  name="Cadastro_Imovel" id="Cadastro_Imovel" ENCTYPE="multipart/form-data">
<INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="1000000">
<INPUT TYPE="hidden" NAME="action" VALUE="upload">
                    <table width="408" border="0" align="center" cellpadding="4" cellspacing="0" class="style3">
                      <tr bgcolor="#CCCCCC"> 
                        <td colspan="2" class="style2">Dados do im&oacute;vel</td>
                      </tr>
                      <tr > 
                        <td width="116">Finalidade</td>
                        <td width="234"><select name="finalidade">
                            <option>Venda</option>
                            <option>Loca&ccedil;&atilde;o</option>
                            <option>Permuta</option>
                          </select></td>
                      </tr>
                      <tr> 
                        <td>Tipo</td>
                        <td><select name="tipo">
                            <option>Casa</option>
                            <option>Apartamento</option>
                            <option>Im&oacute;vel comercial</option>
                            <option>Fazenda</option>
                            <option>Ch&aacute;cara</option>
                            <option>S&iacute;tio</option>
                          </select></td>
                      </tr>
                      <tr> 
                        <td>Endere&ccedil;o</td>
                        <td><input name="endereco" type="text" size="20"></td>
                      </tr>
                      <tr> 
                        <td>Bairro</td>
                        <td><input name="bairro" type="text" size="20"></td>
                      </tr>
                      <tr> 
                        <td>Cidade</td>
                        <td><input name="cidade" type="text" size="20"></td>
                      </tr>
                      <tr> 
                        <td>Descri&ccedil;&atilde;o completa</td>
                        <td><input name="descricao" type="text" size="20"></td>
                      </tr>
                      <tr>
                        <td>Foto do im&oacute;vel</td>
                        <td><input type="file" name="anexo"></td>
                      </tr>
                      <tr bgcolor="#CCCCCC" class="style2"> 
                        <td colspan="2">Dados do propriet&aacute;rio</td>
                      </tr>
                      <tr> 
                        <td>Nome</td>
                        <td><input name="nome" type="text" size="20"></td>
                      </tr>
                      <tr> 
                        <td>Telefone</td>
                        <td><input name="telefone" type="text" size="20"></td>
                      </tr>
                      <tr> 
                        <td>E-mail</td>
                        <td><input name="from" type="text" size="20"></td>
                      </tr>
                      <tr> 
                        <td><input type="hidden" name="to" size="40" value="andrelaperuta@hotmail.com"></td>
                        <td><input type="hidden" name="subject" size="40" value="Cadastro de im&oacute;vel"></td>
                      </tr>
                      <tr> 
                        <td>&nbsp;</td>
                          <td><input type="submit" name="Submit" value="Enviar"> <input type="reset" name="Submit2" value="Limpar"></td>
                      </tr>
                    </table>
                  </form>';
}

if ($action == "upload")

{
$mime_list = array("html"=>"text/html","htm"=>"text/html", "txt"=>"text/plain", "rtf"=>"text/enriched","csv"=>"text/tab-separated-values","css"=>"text/css","gif"=>"image/gif");

$ABORT = FALSE;

$boundary = "XYZ-" . date(dmyhms) . "-ZYX";

$message = "--$boundary\n";
$message .= "Content-Transfer-Encoding: 8bits\n";
$message .= "Content-Type: text/plain; charset=\"ISO-8859-1\"\n\n";
$message .= $descricao;
$message .= $finalidade;
$message .= $tipo;
$message .= $endereco;
$message .= $bairro;
$message .= $cidade;
$message .= $nome;
$message .= $telefone;
$message .= "\n";

$attachments[1] = $anexo;

foreach ($attachments as $key => $full_path) {
if ($full_path !='') {
      if (file_exists($full_path)){
            if ($fp = fopen($full_path,"rb")) {
                    $filename = array_pop(explode(chr(92),$full_path));
                    $contents = fread($fp,filesize($full_path));
                    $encoded = base64_encode($contents);
                    $encoded_split = chunk_split($encoded);
                    fclose($fp);
                    $message .= "--$boundary\n";
                    $message .= "Content-Type: $anexo_type\n";
                    $message .= "Content-Disposition: attachment; filename=\"$anexo_name\" \n";
                    $message .= "Content-Transfer-Encoding: base64\n\n";
                    $message .= "$encoded_split\n";
            }
            else {
            echo "Impossível abrir o arquivo$key: $filename";
            $ABORT = TRUE;
            }
      }
      else {
      echo "O arquivo$key não existe: $filename";
      $ABORT = TRUE;
      }

}
}

$message .= "--$boundary--\r\n";

$headers = "MIME-Version: 1.0\n";
$headers .= "From: <$from>\r\n";
$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n";


$mensagem=mail($to, $message, $headers);
if ($mensagem) {
   print "<div align='center'><font size='2' face='Arial, Helvetica, sans-serif'>O 
              pedido de cadastro do seu im&oacute;vel foi enviado com sucesso.<br>
              Por seguran&ccedil;a estaremos colocando seu im&oacute;vel dentro 
              de 2 a 3 dias.</font></div>";

} else {
   print "O envio da mensagem falhou!";
}

}
?>

agradeço por qualquer ajuda
:: André Laperuta :: www.kywdesign.com :: Nós Fazemos Internet ::




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq