de dados por um formulário. Apresento o fontes dos respectivos arquivos:
//FORMULÁRIO<form method="POST" action="enviar.php"><table width="100%" border="0" cellspacing="2" cellpadding="2"><tr><td class="tahoma-02-cinza"><div align="right">Nome:<b><i><font size="1" face="Verdana" color="#FFFFFF"></font></i></b></div></td><td><b><i><font size="1" face="Verdana" color="#FFFFFF"><input name="nome" type="text" class="fomu" size="60"></font></i></b></td></tr><tr><td class="tahoma-02-cinza"><div align="right"><b>E-mail:<i><font size="1" face="Verdana" color="#FFFFFF"></font></i></b></div></td><td><b><i><font size="1" face="Verdana" color="#FFFFFF"><input name="email" type="text" class="fomu" size="60"></font></i></b></td></tr><tr><td class="tahoma-02-cinza"><div align="right">Telefone:<b><i><font size="1" face="Verdana" color="#FFFFFF"></font></i></b></div></td><td><b><i><font size="1" face="Verdana" color="#FFFFFF"><input name="telefone" type="text" class="fomu" id="telefone2" size="60"></font></i></b></td></tr><tr><td class="tahoma-02-cinza"><div align="right"><b>Cidade:<i><b><i><font size="1" face="Verdana" color="#FFFFFF; color:#C40000"></font></i></b></i></b></div></td><td><b><i><b><i><font size="1" face="Verdana" color="#FFFFFF; color:#C40000"><input name="cidade" type="text" class="fomu" size="60"></font></i></b></i></b></td></tr><tr><td align="right">Produtos:</td></br> <td> <select name="produto"> <option value="0">--Escolha um produto --</option> <option value="1">Item 1</option> <option value="2">Item 2</option> <option value="3">Item 3</option> <option value="4">Item 4</option> </select></font></i></b></td></tr><tr><td class="tahoma-02-cinza"><div align="right"><b>Mensagem:<i><font size="1" face="Verdana" color="#FFFFFF"></font></i></b></div></td><td><b><i><font size="1" face="Verdana" color="#FFFFFF"><textarea name="textodamensagem" cols="45" rows="4" class="fomu"></textarea></font></i></b></td></tr><tr><td></td><td><input name="enviar" type="submit" class="formcop" value="Enviar Mensagem"></td></tr></table></form> </div>
Depois tenho um arquivo de autenticação cujo nome é autenticacao.php
class SendMail{ var $Servidor; //Endereço do servidor SMTP var $Porta=25; //Porta do servidor SMTP var $Autenticado; //Autenticado ou não var $Usuario; //Usuario do servidor SMTP var $Senha; //Senha do servidor SMTP var $EmailDe; //Email de quem está enviando var $EmailPara; //Email de quem vai receber var $Assunto; //Assunto do email var $Corpo; //Mensagem do email var $Telefone; //Telefone do cliente var $Cidade; //Cidade do cliente var $Produtos //produto solicitado var $Mensagem; //Conteúdo da mensagem //Aumente para mais anexos var $Anexos=array(" ", " ", " ", " ", " ", " "," ", " ", " "," "); var $NumAnexos=0; var $Barra="\\"; //Variavel que guarda o tipo da barra, \\ - windows | / - Linux var $erros=FALSE; //Variavel que trata a situação da classe //Construtor function SendMail() { //Aumenta o tempo de espera maximo set_time_limit(3600); } //Criptografa o arquivo na base64 function CodarArquivo($arq) { $fp=fopen($arq, "rb"); if(!$fp) { $this->erros=TRUE; return FALSE; } $File=fread($fp, filesize($arq)); fclose($fp); return base64_encode($File); } //Retorna o nome do arquivo function PegarNome($str) { $Nome=""; $i=strlen($str)-1; while($str[$i]!="\\") $i--; $i++; $j=0; for($i; $i<strlen($str); $i++) { $Nome.=$str[$i]; $j++; } return $Nome; } //Retorna a extensão do arquivo, desde que ele tenha extesão function PegarTipo($str) { $tipo=""; $i=strlen($str)-1; $j=0; while($str[$i]!=".") $i--; $i++; $j=0; for($i; $i<strlen($str); $i++) { $tipo.=$str[$i]; $j++; } return $tipo; } //Coloca o endereço do arquivo no array e aumenta o numero de anexos function Anexar($arq) { $this->Anexos[$this->NumAnexos]=$arq; $this->NumAnexos++; return TRUE; } //Função que verifica se as variaveis estão OK function Verificar() { //Verifica se é um servidor autenticado if( $this->Autenticado ) if( !isset($this->Usuario) || !isset($this->Senha) ) //Se for autenticado, verifica o usuario e a senha $this->erros=TRUE; //Verifica se o servidor foi digitado if( !isset($this->Servidor) ) $this->erros=TRUE; //Verifica se os parametros são validos if( !isset($this->EmailDe) || !isset($this->EmailPara) || !isset($this->Assunto) || !isset($this->Corpo) || !isset($this->Telefone) || !isset($this->Cidade) || !isset($this->Produtos) || !isset($this->Mensagem) ) $this->erros=TRUE; } //Função que espera o servidor responder function Esperar_Resp($socket, $response, $line = __LINE__) { while (substr($server_response, 3, 1) != ' ') if (!($server_response = fgets($socket, 256))) $this->erros=TRUE; if (!(substr($server_response, 0, 3) == $response)) $this->erros=TRUE; } function Enviar() { $this->Verificar(); if( !$this->erros ) { //Tenta conectar if( !$socket=fsockopen($this->Servidor, $this->Porta, $errno, $errstr, 20) ) $this->erros=TRUE; //Espera por resposta $this->Esperar_Resp($socket, "220", __LINE__); //Verifica se o email esta sendo autenticado //Caso for ele ira mandar um EHLO, pra dizer que vai ser autenticado //Caso não for ele manda um HELO simples. if( $this->Autenticado ) { fputs($socket, "EHLO " . $this->Servidor . "\r\n"); $this->Esperar_Resp($socket, "250", __LINE__); fputs($socket, "AUTH LOGIN\r\n"); $this->Esperar_Resp($socket, "334", __LINE__); fputs($socket, base64_encode($this->Usuario) . "\r\n"); $this->Esperar_Resp($socket, "334", __LINE__); fputs($socket, base64_encode($this->Senha) . "\r\n"); $this->Esperar_Resp($socket, "235", __LINE__); } else { fputs($socket, "HELO " . $this->Servidor . "\r\n"); $this->Esperar_Resp($socket, "250", __LINE__); } //Envia quem está mandando o email fputs($socket, "MAIL FROM: " . $this->EmailDe . "\r\n"); $this->Esperar_Resp($socket, "250", __LINE__); //Diz ao servidor quem vai receber o email fputs($socket, "RCPT TO: " . $this->EmailPara . "\r\n"); $this->Esperar_Resp($socket, "250", __LINE__); //Diz ao servidor que estou pronto para enviar a mensagem fputs($socket, "DATA\r\n"); $this->Esperar_Resp($socket, "354", __LINE__); //Cabeçalho do email fputs($socket, "From: " . $this->EmailDe . "\r\n"); fputs($socket, "To: " . $this->EmailPara . "\r\n"); //Mando o assunto do email //fputs($socket, "Subject: " . $this->Assunto . "\r\n"); fputs($socket, "Subject: " . $this->Telefone . "\r\n"); fputs($socket, "Subject: " . $this->Cidade . "\r\n"); fputs($socket, "Subject: " . $this->Produto . "\r\n"); fputs($socket, "Subject: " . $this->Mensagem . "\r\n"); //Envia o cabeçalho fputs($socket, "MIME-Version: 1.0\r\n"); fputs($socket, "Content-Type: multipart/mixed;\r\n"); fputs($socket, " boundary=KkK170891tpbkKk__FV_KKKkkkjjwq\r\n"); fputs($socket, "\r\n"); fputs($socket, "\r\n"); fputs($socket, "--KkK170891tpbkKk__FV_KKKkkkjjwq\r\n"); fputs($socket, "Content-Type: text/plain; charset=US-ASCII\r\n"); fputs($socket, "\r\n"); fputs($socket, $this->Corpo); fputs($socket, "\r\n\r\n"); //verifica se existe arquivo para ser enviado junto if($this->NumAnexos>0) { for($i=0; $i<$this->NumAnexos; $i++) { //Pega o tipo para o MIME TYPE $tipo=$this->PegarTipo($this->Anexos[$i]); strtolower($tipo); switch($tipo) { case "jpeg": case "jpg": $Tipo="image/jpeg"; break; case "gif": $Tipo="image/gif"; break; case "doc": $Tipo="application/msword"; break; case "rar": $Tipo="application/rar"; break; case "zip": $Tipo="application/zip"; break; default: $Tipo="application/octet-stream"; break; } //Pega o nome do arquivo $Nome=$this->PegarNome($this->Anexos[$i]); fputs($socket, "--KkK170891tpbkKk__FV_KKKkkkjjwq\r\n"); fputs($socket, "Content-Type: " . $Tipo . "; name=\"". $Nome . "\"\r\n"); fputs($socket, "Content-Transfer-Encoding: base64\r\n"); fputs($socket, "Content-Disposition: attachment; filename=\"" . $Nome . "\"\r\n"); fputs($socket, "\r\n"); fputs($socket, $this->CodarArquivo($this->Anexos[$i])); fputs($socket, "\r\n"); } fputs($socket, "--KkK170891tpbkKk__FV_KKKkkkjjwq--\r\n"); } //Avisa o servidor que ja acabei de enviar a mensagem fputs($socket, "\r\n.\r\n"); $this->Esperar_Resp($socket, "250", __LINE__); //Sai do servidor e fecha o socket fputs($socket, "QUIT\r\n"); fclose($socket); //Retorna um TRUE pra dizer que o email foi enviado if ($this->erros==TRUE) return FALSE; else return TRUE; } }}?>E agora por fim tenho o arquivo enviar.php
<?phpinclude "autenticacao.php"; $Email = new SendMail; $Email->Servidor = "localhost"; $Email->Autenticado = TRUE; $Email->Usuario = "website@teste.com.br"; //website@oseudominio.com $Email->Senha = "12345678"; // pass12345678 $Email->EmailDe = $_POST['website@teste.com.br']; // website@oseudominio.com, para quem receber o mail, seja o dono do site ou o cliente, saber de onde vem o mail. $Email->EmailPara = " info@teste.com.br"; // caso o mail seja para enviar ao dono do site deve colocar-se info@oseudominio.com, caso seja uma resposta automática à pessoa que preencheu o formulário deve colocar-se o e-mail dela. $Email->Telefone = $_POST['telefone']; $Email->Cidade = $_POST['cidade']; $Email->Produtos = $_POST['produto']; $Email->Assunto = $_POST['assunto']; $Email->Corpo = $_POST['mensagem']; /* * Caso precise anexar arquivos no email * utilize: * $Email->Anexar("/caminho/do/arquivo/1"); * $Email->Anexar("/caminho/do/arquivo/2"); * ... * Não se esqueça que é necessário fazer o * upload do cliente para o servidor primeiro * */ //Envia o email if($Email->Enviar()) { echo "Seu email foi enviado corretamente"; } else { echo "Desculpe, seu email não pode ser enviado"; }?>Observação, o email já está cadastrado corretamento no servidor e as senhas, pois ambos estão corretos, entretanto ao final do preechimento do formulario quando envio o mesmo, me da a mensagem "Desculpe, seu email não pode ser enviado" por favor se tiver alguém que possa me ajudar agradeço imensamente pela colaboração.










