Ir para conteúdo
Fórum Script Brasil
  • 0

PHPmailer


Alexandre Alves

Pergunta

Aos moderadores do forúm, me desculpe se postei em lugar errado ou coisa assim!!!

Boa tarde companheiros, este é o meu primeiro post no forúm e preciso de ajuda.

Sou Iniciate em PHP, na verdade eu apenas tive algumas aulas no curo técnico esse semestre e meu chefe me pediu que fizese um formulário que enviase e-mails á seção de SUPORTE com anexos das mensagem em XML.

Pesquisei bastante como fazer, até encontrar o PHPmailer.

Bom, vamos por partes então, preciso recuperar os dados digitados do formuário, ponto.(funcionando)

preciso gravar os dados digitados em um arquivo na hospedagem, ponto.(funcionando)

preciso ler os dados e fazer a configuração necessária para a classe PHPMailer, ponto(não está funcionando)

O meu erro está nessa condição if(file_exists($arquivo["tmp_name"]) and !empty($arquivo)){

o programa não está passando por essa condição, essa condição deve ser verdadeira para poder ler e anexar.

já tirei essa condição para ver o que ocorria, ele cria o anexo, porém vem em branco com 93 B oO

logo preciso passar nessa condição para que o código funcione...

estou postando o código abaixo...

Se alguém puder me ajudar eu ficaria muito grato

meu e-mail é alexandre@softpira.com

PS: Já procurei no google, em vários foruns e meu chefe está me cobrando =/

FORMULÁRIO DE ENVIO

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

<html>

<head>

<title>Fale Conosco</title>

</head>

<body>

<!--<form id=form1" method="post" action="envio.php" ectype="multipart/form-data"> -->

<form id="form1" onsubmit="return checa_formulario(this)" action="envio.php" method="post" enctype="multipart/form-data" name="email">

<table width="500" border="0" cellspacing="2" cellpadding="5">

<tr>

<td>Nome: </td>

<td><input name="nome" type="text" id="nome" /></td>

</tr>

<tr>

<td>Email: </td>

<td><input name="email" type="text" id="email" /></td>

</tr>

<tr>

<td>Mensagem: </td>

<td><textarea name="mensagem" cols="35" rows="10" id="mensagem"></textarea><td>

</tr>

<tr>

<td> </td>

<td><input type="submit" name="Submit" value="Enviar Mensagem" /></td>

<tr>

</table>

</form>

</body>

</html>

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

ENVIO.PHP

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

<HTML>

<HEAD>

<TITLE>New Document</TITLE>

</HEAD>

<BODY>

<?php

//pego os dados enviados pelo formulario

$nome = $_POST["nome];

$email = $_POST["email"];

$mensagem = $_POST["mensagem"];

//$assunto = $_POST["assunto"];

$assunto = "SUPORTE";

$email_from = $_POST["alexandre@softpira.com"];

$filename = "anexo.txt";

//$arquivo = "tmp_name";

//formato o campo da mensagem

$mensagem = wordwrap( $mensagem, 50, "<br>", 1);

//valido os emails

//if (!ereg("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$", $email)){

//echo"<center>Digite um email valido</center>";

//echo "<center><a href=\"java script:history.go(-1)\">Voltar</center></a>";

//exit;

//}

//if (!ereg("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$", $email_from)){

//echo "<center>Digite um email valido</center>";

//echo "<center><a href=\"java script:history.go(-1)\"><center>Voltar</center></a>";

//exit;

//}

if (is_writable($filename)) {

// Em nosso exemplo, nós estamos abrindo $filename em modo de append (acréscimo).

// O ponteiro do arquivo estará no final dele desde

// que será aqui que $somecontent será escrito com fwrite().

if (!$handle = fopen($filename, 'wb')) {

print "Erro abrindo arquivo ($filename)";

exit;

}

// Escrevendo $somecontent para o arquivo aberto.

if (!fwrite($handle, $mensagem)) {

print "Erro escrevendo no arquivo ($filename)";

exit;

}

print "Sucesso: escrito ($mensagem) no arquivo ($filename)";

fclose($handle);

} else {

print "The file $filename is not writable";

}

$arquivo = isset($_FILES["anexo"]) ? $_FILES["anexo"] : FALSE;

if(file_exists($arquivo["tmp_name"]) and !empty($arquivo)){

$fp = fopen($_FILES["anexo"]["tmp_name"],"rb");

$anexo = fread($fp,filesize($_FILES["anexo"]["tmp_name"]));

$anexo = base64_encode($anexo);

fclose($fp);

$anexo = chunk_split($anexo);

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

$mens = "--$boundary\n";

$mens .= "Content-Transfer-Encoding: 8bits\n";

$mens .= "Content-Type: text/html; charset=\"ISO-8859-1\"\n\n";

$mens .= "$mensagem\n";

$mens .= "--$boundary\n";

$mens .= "Content-Type: ".$arquivo["type"]."\n";

$mens .= "Content-Disposition: attachment; filename=\"".$arquivo["name"]."\"\n";

$mens .= "Content-Transfer-Encoding: base64\n\n";

$mens .= "$anexo\n";

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

$headers = "MIME-Version: 1.0\n";

$headers .= "From: \"$nome\" <$email_from>\r\n";

$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n";

$headers .= "$boundary\n";

//envio o email com o anexo

mail($email,$assunto,$mens,$headers);

echo"Email enviado com Sucesso com anexo!";

}

//se não tiver anexo

else{

$headers = "MIME-Version: 1.0\r\n";

$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

$headers .= "From: \"$nome\" <$email_from>\r\n";

//envia o email sem anexo

mail($email,$assunto,$mensagem, $headers);

echo"Email enviado com Sucesso!";

}

?>

</BODY>

</HTML>

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...