Pessoal, bom dia!
Eu tive um problema muito parecido pessanha, mas não me recordo se o erro era esse que vc postou.
Utilizei uma biblioteca externa para resolver, PHPMailer, e funcionou perfeitamente.
Acredito que o problema esteja relacionado com o tipo de autenticação do servidor, que no Brasil agora é obrigatório a autenticação no SMTP para envio de e-mail.
Baixei a biblioteca deste site: https://github.com/Synchro/PHPMailer
Faça upload das bibliotecas class.phpmailer.php, class.pop3.php e class.smtp.php, no menu -> ferramentas -> bibliotecas.
Esse foi o código que usei para gerar e enviar o e-mail:
$sql = "
SELECT `EmailRemetente`, `UsuarioPop`, `Password`, `ServidorPop`, `PortaPOP`, `ServidorSMTP`, `PortaSMTP`, `TextoEmailCorrespondencia`, `ConexaoSegura`, `AssuntoEmailCorrespondencia`, `NomeRemetente`
FROM tbl_parametros
WHERE CodCli = [codcli]
AND `EnviaEmailComunicados` = 'S'
";
sc_lookup(rsparam, $sql);
if ( {rsparam} === false )
{
echo "Erro de acesso ao banco de dados. " . {rsparam_erro};
}
elseif ( !empty({rsparam}) )
{
// Email parameters
$mail_smtp_server = {rsparam[0][5]}; // SMTP server name or IP address
$mail_smtp_user = {rsparam[0][1]}; // SMTP user name
$mail_smtp_pass = sc_decode({rsparam[0][2]}); // SMTP password
$email_name_from = {rsparam[0][10]}; // Name of sender
$mail_from = {rsparam[0][0]}; // From email
$mail_subject = 'Correspondência'; // Message subject
$mail_format = 'H'; // Message format: (T)ext or (H)tml
$mail_port_number = {rsparam[0][6]}; // SMTP server port number
$mail_security = {rsparam[0][8]}; // Secutity conection
$mail_subject = {rsparam[0][9]}; // Subject of E-mail
$mail_message = {rsparam[0][7]}; // Message body
$mailsendto = "
SELECT u.id, m.nome, m.email
FROM tbl_unidade u, tbl_moradores m
WHERE u.CodCli = [codcli]
AND u.id = m.tbl_unidade_id
AND u.Correspondencia = 'S'
AND m.RecebeMail = 'S'
AND u.MailSend = 'N'
";
sc_lookup(rsemail, $mailsendto);
if ( {rsemail} === false )
{
echo "Erro de acesso ao banco de dados. " . {rsemail_erro};
}
elseif( !empty({rsemail}) )
{
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = $mail_smtp_server;
$mail->Port = $mail_port_number;
$mail->SMTPAuth = true;
if ( $mail_security <> 'N' )
{
$mail->SMTPSecure=$mail_security;
}
$mail->Username = $mail_smtp_user ;
$mail->Password = $mail_smtp_pass;
$mail->From = $mail_from;
$mail->FromName = $email_name_from;
foreach( {rsemail} as $email )
{
$mail_to = $email[2]; // To email
$mail_to_name = $email[1]; // Name
// $mail->AddAddress($mail_to, $mail_to_name);
$mail->AddBCC($mail_to, $mail_to_name);
}
$mail->WordWrap = 50;
$mail->IsHTML(true);
$mail->Subject = $mail_subject;
$mail->Body = $mail_message;
if(!$mail->Send())
{
echo "Houve um erro ao enviar o email! erro: $mail->ErrorInfo";
exit;
}
else
{
sc_begin_trans();
foreach( {rsemail} as $email )
{
sc_exec_sql("update tbl_unidade set MailSend = 'S' where id = $email[0]");
}
sc_commit_trans();
}
}
}
Todos os parâmetros para envio estão em uma tabela.
Att
Marcio