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 a todos!
Mais uma vez, aqui estou eu. Vamos lá!
A chamada:
<?php
##################################
/********************
EMAIL : COBRANCA
********************/
// INCLUDES
$Base = '../../../';
Require_Once($Base.'sis/funcoes/geral.php');
Require_Once($Base.'sis/funcoes/email.php');
//Require_Once('sis/includes/email/cobranca.php');
$De = Array('Nome' => 'IPis', 'Email' => 'info@ipis.com.br');
$Para = Array('Nome' => 'Fernando', 'Email' => 'fernando.r.lima@hotmail.com');
$Assunto = 'Teste de Cobrança';
$Mensagem = '...';
$SMTP = Array('Servidor' => 'mail.ipis.com.br', 'Usuario' => $De['Email'], 'Senha' => 'frl0258F');
$RT = Email($De, $Para, $Assunto, $Mensagem, "comercial@ipis.com.br", "comercial@ipis.com.br", True, $SMTP);
?>
A função:
<?php
##################################
/*********
ENVIO
*********/
Function Email($De = Array(), $Para = Array(), $Assunto = '', $MSG = '', $Copia = '', $Copia_Oculta = '', $Autenticar = True, $SMTP = Array())
{
// VARIAVEIS
// ...
// VALIDACOES
// ...
/ HEADERS /
$Headers = "MIME-Version: 1.0\r\n";
$Headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$Headers .= empty($De['Nome']) ? "From: {$De['Email']}\r\n" : "From: ".Email_Encode($De['Nome'])."<{$De['Email']}>\r\n";
$Headers .= empty($De['Nome']) ? "Reply-To: {$De['Email']}\r\n" : "Reply-To: ".Email_Encode($De['Nome'])."<{$De['Email']}>\r\n";
$Headers .= empty($Para['Nome']) ? "To: {$Para['Email']}\r\n" : "To: ".Email_Encode($Para['Nome'])."<{$Para['Email']}>\r\n";
$Headers .= empty($Copia) ? "" : "Cc: {$Copia}\r\n";
$Headers .= empty($Copia_Oculta) ? "" : "Bcc: {$Copia_Oculta}\r\n";
$Headers .= "Subject: ".Email_Encode($Assunto)."\r\n";
$Headers .= "Date: ".date('D, d M Y H:i:s O')."\r\n";$Headers .= "X-SenderIP: {$_SERVER['REMOTE_ADDR']}\r\n";
If (isSet($_SERVER['HTTP_X_FORWARDED_FOR']))
{ $headers .= "X-SenderIP-Lan: {$_SERVER['HTTP_X_FORWARDED_FOR']}\r\n"; }
/ MENSAGEM /
$Cabecalho = '';
$Rodape = '';
$Mensagem = $Cabecalho.$MSG.$Rodape;
/ ENVIO /
// AUTENTICAO
If ($Autenticar !== False)
{ If (empty($SMTP) || !is_array($SMTP))
{ Return Array('Erro' => 1, 'Desc' => 'Dados para autenticação SMTP ausentes/corrompidos'); }
// Conexao
$Porta = empty($SMTP['Porta']) || !is_numeric($SMTP['Porta']) ? 25 : intval($SMTP['Porta']);
$Tempo = empty($SMTP['Tempo']) || !is_numeric($SMTP['Tempo']) ? 30 : intval($SMTP['Tempo']);
$Conexao = fsockopen($SMTP['Servidor'], $Porta, $Erro_ID, $Erro_Desc, $Tempo);
// Erro de conexão
If ($Conexao === False)
{ Return Array('Erro' => $Erro_ID, 'Desc' => $Erro_Desc); }
// Escrita
fputs($Conexao, "EHLO {$SMTP['Servidor']}\r\n");
fputs($Conexao, "AUTH LOGIN\r\n");
fputs($Conexao, base64_encode($SMTP['Usuario'])."\r\n");
fputs($Conexao, base64_encode($SMTP['Senha'])."\r\n");
//fputs($Conexao, "MAIL FROM: {$De['Email']}\r\n");
$From = empty($De['Nome']) ? "MAIL FROM: {$De['Email']}\r\n" : "MAIL FROM: ".Email_Encode($De['Nome'])."<{$De['Email']}>\r\n";
fputs($Conexao, $From);
fputs($Conexao, "RCPT TO: {$Para['Email']}\r\n");
fputs($Conexao, "DATA\r\n");
fputs($Conexao, "{$Headers}\r\n");
fputs($Conexao, "{$Mensagem}\r\n");
fputs($Conexao, ".\r\n");
fputs($Conexao, "QUIT\r\n");
// Debug
$Dedug = "";
While (!feof($Conexao))
{ $Dedug .= fgets($Conexao)."<BR>\n";
} Echo $Dedug;
// Retorno
$RT = Array('Erro' => 0, 'Info' => 'E-mail ['.$Assunto.'] enviado para ['.$Para['Email'].'] com sucesso');
}Return $RT;
}
?>
A função Email_Encode() é pra resolver o problema de codificao no cabeçalho, estou usando quoted_printable_encode($String) como retorno.
A Saída: (código de debug da função)
>
...
235 2.0.0 Authentication successful
250 2.1.0 Ok
250 2.1.5 Ok
354 End data with .
250 2.0.0 Ok: queued as 0915B1057431
221 2.0.0 Bye
Como podem ver, sem problemas no envio!
Os Problemas:
1) As cópias, Cc e Bcc no header do email, não chegam d ejeito nenhum!
2) Os cabeçalhos chegam duplicados, tipo:
/applications/core/interface/imageproxy/imageproxy.php?img=http://ipis.com.br/web/img/imaters_email.png&key=4e8b2e7e54b3c1a7156aedbf0aacc12e56c7d997fb6172fccae8dd3b5c875933" alt="imaters_email.png" />
Alguma luz nos problemas?
Solved! Moderador; favor marcar como resolvido.