Não consigo enviar e-mail de um servidor linux com este código.

Enviada por Leonardo Rocha 
Leonardo Rocha
Não consigo enviar e-mail de um servidor linux com este código.
28 de May de 2007 às 06:27AM
Pessoal com o código abaixo eu consigo enviar e-mail para qualquer lugar em uma máquina windows, mas quando coloco ele em um servidor LINUX eu não consigo fazer isso. O sistema informa que foi enviado mas não passa pelo servidor de maneira alguma. Por favor necessito disso o mais rápido possível. Se alguém puder ajudar agradeço muito.

[b][color="#FF0000"][font="Arial Black"]Este código é do formmail.php[/font][/color][/b]

[codebox]<?php
/* Domínios ou IPS de sitess que vc autoriza enviar dados para este script
Para habilitar esse recurso, retire o comentário (as duas barras do começo da linha: // )
e edite os domínios permitidos */
//$referencia_formulario = array ('localhost','dominio.com.br','www.dominio.com.br','200.10.145.194');
/* Não alterar se vc não tem idéia do que é CSV
adiciona uma formatação estilo CSV para os dados do formulário */
$CFG = array(
'csv_style' => 0, // Utilizar esquema CSV? 0=não e 1=sim
'csv_delimiter' => ' ' // Qual o delimitador entre os campos (TAB é a melhor opção)
);
/* Textos que aparecem no programa */
$txt_msg = array(
0 => 'A sua questão não foi enviada pelas seguintes razões:<p>',
1 => 'Use o botão voltar do seu navegador.<p>',
2 => 'Você está utilizando um endereço de email banido do sistema',
3 => 'Você está enviando o formulário de uma origem <b>não autorizado</b>',
4 => '<b>Precisa de um email de destinatário válido para continuar</b>',
5 => 'Faltando',
6 => 'Seu <b>endereço de email</b> é invalido',
7 => 'Dados do Formulário',
8 => '<font color="#004000"><h3><b><BR><BR><BR>Obrigado pelo contato! Iremos analisar o seu problema o mais rápido possível.</b></h3></font>',
9 => 'Formulário: Erro',
10 => 'Formulário: Enviado com sucesso'
);
// controle interno
$versao = '1.0';
/* ############################################################################################# */
function pagina_cabecalho($title){
global $txt_msg;
$bgcolor = "#FFFFFF";
$text_color = "#00FF00";
$link_color = "#0000FF";
$vlink_color = "#FF0000";
$alink_color = "#000088";
$background = '';
echo "<head><title>$title</title></head>\n";
$background = !empty($background) ? "background='$background'" : '';
echo "<body bgcolor='$bgcolor' text='$text_color' link='$link_color' vlink='$vlink_color' alink='$alink_color' $background>\n\n";
}
function imprimir_erro($razao,$tipo = 0) {
global $txt_msg;

echo pagina_cabecalho($txt_msg['9']);
if ($tipo=='falta'){
echo $txt_msg['0'];
echo '<ul><b>' . $razao. '</b></ul>';
echo $txt_msg['1'];
}else{ // every other error
echo $txt_msg['0'];
}
echo "<br><br>\n</body>";
exit;
}
function verificar_referencia($referencia_formulario) {
global $txt_msg;
if(count($referencia_formulario))
{
$encontrado = false;
$temp = explode('/',getenv('HTTP_REFERER'));
$referencia = $temp[2];
for($x=0; $x<count($referencia_formulario); $x++)
{
if(eregi($referencia_formulario[$x], $referencia))
{
$encontrado = true;
}
}
if(!getenv('HTTP_REFERER'))
$encontrado = false;
if(!$encontrado)
{
imprimir_erro($txt_msg['3']);
error_log("formmail.php] Referência Ilegal. (".getenv("HTTP_REFERER").")", 0);
}
return $encontrado;
}else{
return true;
}
}
function capturar_campos($array) {
global $txt_msg,$CFG,$csv_header;
$campos_reservados[] = 'destinatario';
$campos_reservados[] = 'obrigatorio';
$campos_reservados[] = 'assunto';
$campos_reservados[] = 'campos_faltando_redirecionar';
$campos_reservados[] = 'redirecionar';
if (count($array))
{
while (list($key, $val) = each($array))
{
$reservado_violado = 0;
for ($i=0; $i<count($campos_reservados); $i++)
{
if ($key == $campos_reservados[$i])
{
$reservado_violado = 1;
}
}
if ($reservado_violado != 1)
{
if (is_array($val))
{
for ($z=0;$z<count($val);$z++)
{
$csv_header .= ($CFG['csv_style']==1)? $key.$CFG['csv_delimiter'] : '';
$conteudo .= ($CFG['csv_style']==1)? $val[$z].$CFG['csv_delimiter'] : "$key: $val[$z]\r\n";
}
}else{
$csv_header .= ($CFG['csv_style']==1)? $key.$CFG['csv_delimiter'] : '';
$conteudo .= ($CFG['csv_style']==1)? $val.$CFG['csv_delimiter'] : "$key: $val\r\n";
}
}
}
}
return $conteudo;
}
function mail_it($destinatario_email, $assunto, $corpo, $remetente_email) {

$header = !empty($remetente_email)? "From: $remetente_email\r\n" : '';
$header .= !empty($remetente_email)? "Reply-To: $remetente_email\r\n" : '';
$header .= "X-Mailer: PHP mail ver".phpversion()."\r\n";
mail($destinatario_email, $assunto, $corpo,$header);
}
/* ############################################################################################# */
error_reporting(E_ERROR | E_WARNING | E_PARSE);
if(!empty($HTTP_GET_VARS)) {
while(list($xxxname, $value) = each($HTTP_GET_VARS)) {
$$xxxname = $value;
}
}
if(!empty($HTTP_POST_VARS)){
while(list($xxxname, $value) = each($HTTP_POST_VARS)) {
$$xxxname = $value;
}
}
if(!empty($HTTP_POST_FILES)) {
while(list($xxxname, $value) = each($HTTP_POST_FILES)) {
$$xxxname = $value['tmp_name'];
}
}
/* ############################################################################################# */
if(!empty($referencia_formulario))
{
verificar_referencia($referencia_formulario);
}
/* ############################################################################################# */
$destinatario_array = split(',',$destinatario);
for($i=0; $i<count($destinatario_array); $i++)
{
$destinatario_testar = trim($destinatario_array[$i]);
if(!eregi("^[_\\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\\.)+[a-z]{2,4}$", $destinatario_testar))
{
imprimir_erro($txt_msg['4']);
}
}
if(!empty($obrigatorio))
{
$campos_requeridos = $obrigatorio;
}
if(!empty($campos_requeridos))
{
$campos_requeridos = split(',',$campos_requeridos);
for($i=0; $i<count($campos_requeridos); $i++)
{
$key_campo = trim($campos_requeridos[$i]);
if(empty($$key_campo))
{
if(!empty($campos_faltando_redirecionar))
{
header ("Location: $campos_faltando_redirecionar");
exit;
}
$campos_faltando_lista .= "<b>" . $txt_msg['5'] . ": $campos_requeridos[$i]</b><br>\n";
}
$val_campo = '';
}
if ($campos_faltando_lista)
{
imprimir_erro($campos_faltando_lista,'falta');
}
}
if(empty($assunto))
{
$assunto = $txt_msg['7'];
}
if(!empty($email) || !empty($EMAIL))
{
$email = trim($email);
if ($EMAIL)
$email = trim($EMAIL);
if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$", $email))
{
imprimir_erro($txt_msg['6']);
}
$EMAIL = $email;
}
$conteudo = capturar_campos($HTTP_POST_VARS);
$conteudo = $CFG['csv_style']==1 ? "\n\n".$csv_header."\n".$conteudo."\n" : $conteudo;
mail_it($destinatario, stripslashes($assunto), stripslashes($conteudo), $email );
if(!empty($redirecionar))
{
header ("Location: $redirecionar");
exit;
}else{
pagina_cabecalho($txt_msg['10']);
print $txt_msg['8'];
echo "<br><br>\n</body>";
exit;
}
?>[/codebox]

[b][color="#FF0000"][font="Arial Black"]Este código é do index.html[/font][/color][/b]

[codebox]
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="http://www.agricultura.gov.br/images/MAPA/cultivares/estilo.css"
type="text/css" media="all">
<img src="cabeca.gif" width="780" height="111" border="0">
<br>

</head>

<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<form name="formmail" method="post" action="formmail.php">
<input type="hidden" name="obrigatorio" value="nome,email,cpf,telefone,assunto_mensagem,mensagem,cidade,estado,sistema">
<input type="hidden" name="destinatario" value="leonardorocha@agricultura.gov.br">
<!-- <input type="hidden" name="assunto" value="Formulario : respostas"> -->
<!-- <input type="hidden" name="campos_faltando_redirecionar" value="pagina_erro.html"> -->
<!-- <input type="hidden" name="redirecionar" value="pagina_sucesso.html"> -->
<font size="4" face="Verdana, Arial, Helvetica, sans-serif"><b><font color="#004000">Informe, neste formulário, os dados a serem analisados.</font></b></font>
<br>
<table width="780" border="0" cellspacing="0" cellpadding="7" align="left">
<tr bgcolor="#FBFFFB">
<td valign="top" width="120" nowrap><br><font color="#004000">Nome</font></td>
<td>
<input class="form_campos" type="text" name="nome" size="70">
</td>
</tr>
<tr bgcolor="#FBFFFB">
<td valign="top" width="120" nowrap><font color="#004000">E-mail</font></td>
<td>
<input class="form_campos" type="text" name="email" size="70">
</td>
</tr>
<tr bgcolor="#FBFFFB">
<td valign="top" width="100" nowrap><font color="#004000">CPF</font></td>
<td>
<input class="form_campos" type="text" name="cpf" size="14">
</td>
</tr>
<tr bgcolor="#FBFFFB">
<td valign="top" width="100" nowrap><font color="#004000">Telefone/Ramal</font></td>
<td>
<input class="form_campos" type="text" name="telefone" size="14">
</td>
</tr>
<tr bgcolor="#FBFFFB">
<td valign="top" width="100" nowrap><font color="#004000">Cidade</font></td>
<td>
<input class="form_campos" type="text" name="cidade" size="40">
</td>
<tr bgcolor="#FBFFFB">
<td valign="top" width="100" nowrap><font color="#004000">Estado</font></td>
<td>
<select name="estado">
<option value="" selected></option>
<option value="AC">AC</option>
<option value="AL">AL</option>
<option value="AM">AM</option>
<option value="AP">AP</option>
<option value="BA">BA</option>
<option value="CE">CE</option>
<option value="DF">DF</option>
<option value="ES">ES</option>
<option value="GO">GO</option>
<option value="MA">MA</option>
<option value="MG">MG</option>
<option value="MS">MS</option>
<option value="MT">MT</option>
<option value="PA">PA</option>
<option value="PB">PB</option>
<option value="PE">PE</option>
<option value="PI">PI</option>
<option value="PR">PR</option>
<option value="RJ">RJ</option>
<option value="RN">RN</option>
<option value="RO">RO</option>
<option value="RR">RR</option>
<option value="RS">RS</option>
<option value="SC">SC</option>
<option value="SE">SE</option>
<option value="SP">SP</option>
<option value="TO">TO</option>
</select>
</td>
</tr>
<tr bgcolor="#FBFFFB">
<td valign="top" width="100" nowrap><font color="#004000">Sistema</font></td>
<td>
<select name="sistema">
<option value="" selected></option>
<option value="AUTOCADASTRO">AUTOCADASTRO</option>
<option value="ESTAGIÁRIOS">ESTAGIÁRIOS</option>
<option value="PENSÃO">PENSÃO</option>
<option value="SCAV">SCAV</option>
<option value="SISBOV">SISBOV</option>
<option value="SICAP">SICAP</option>
<option value="SICAR">SICAR</option>
<option value="SIPE">SIPE</option>
<option value="SISRES">SISRES</option>
<option value="SIMA">SIMA</option>
<option value="SRH">SRH</option>
</select>
</td>
</tr>
<tr bgcolor="#FBFFFB">
<td valign="top" width="100" nowrap><font color="#004000">Assunto</font></td>
<td font>
<select name="assunto_mensagem" >
<option value="" selected></option>
<option value="Acessar sistema">Acessar sistema</option>
<option value="Alterar sistema">Alterar sistema</option>
<option value="Dúvidas">Dúvidas</option>
<option value="Mensagem de erros">Mensagem de erros</option>
<option value="Sem assunto">Outros</option>
</select>
</td>
</tr>
<tr bgcolor="#FBFFFB">
<td valign="top" width="100" nowrap><font color="#004000">Detalhar mensagem</font></td>
<td>
<textarea name="mensagem" cols="75" rows="10"></textarea>
</td>
</tr>
<tr bgcolor="">
<td colspan="2" valign="middle">
<font><font color="#004000" size="1"><p align="left"><font color="#FF0000"><b>Atenção:</b></font> Todos os campos são obrigatórios!</p></font></font>
<div align="right">
<input type="submit" name="Enviar" value="Enviar Mensagem">
<input type="reset" name="Limpar" value="Limpar">
</div>
</td>
</tr>
</table>
</form>
<body>
[/codebox]
Stefano Martins
Re: Não consigo enviar e-mail de um servidor linux com este código.
20 de December de 2007 às 01:10PM
Procure sobre a classe PHPMailer. Vai te ajudar razoavelmente.
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.