Erro ao enviar Email

Olá pessoal,

Tenho uma rotina de envio de email que funcionava bem para um cliente HOSTNET. porém esse cliente resolveu mudar para outro provedor, UOLHOSTS. Neste novo provedor a rotina de email retorna o seguinte erro:

[i]ERRO
fsockopen() [function.fsockopen]: SSL: connection timeout

Script: C:\Arquivos de programas\netmake\v5\wwwroot\scriptcase\prod\third\email_new\lib\Swift\Connection\SMTP.php (324)
fsockopen() [function.fsockopen]: Failed to enable crypto

Script: C:Arquivos de programas etmake5wwwrootscriptcaseprod hirdemail_newlibSwiftConnectionSMTP.php (324)
fsockopen() [function.fsockopen]: unable to connect to tls://smtp.clube-a.com:587 (Unknown error)

Script: C:Arquivos de programas etmake5wwwrootscriptcaseprod hirdemail_newlibSwiftConnectionSMTP.php (324)

Uncaught Error of type [Swift_ConnectionException] with message [The SMTP connection failed to start [tls://smtp.clube-a.com:587]: fsockopen returned Error Number 0 and Error String ‘’]
@0 cont_envia_email_apl::controle() in C:Arquivos de programas etmake5wwwrootscriptcaseappclubeacont_envia_emailcont_envia_email.php on line 1309
@1 cont_envia_email_apl::ini_controle() in C:Arquivos de programas etmake5wwwrootscriptcaseappclubeacont_envia_emailcont_envia_email_apl.php on line 1044
@2 cont_envia_email_apl::enviar() in C:Arquivos de programas etmake5wwwrootscriptcaseappclubeacont_envia_emailcont_envia_email_apl.php on line 1010
@3 Swift::Swift() in C:Arquivos de programas etmake5wwwrootscriptcaseappclubeacont_envia_emailcont_envia_email_apl.php on line 1555

Script: C:Arquivos de programas etmake5wwwrootscriptcaseprod hirdemail_newlibSwiftErrors.php (99)
Swift::handshake expects parameter 1 to be of type Swift_Events_ResponseEvent.

Script: C:Arquivos de programas etmake5wwwrootscriptcaseprod hirdemail_newlibSwift.php (279)
Enviados 2 e-mail com sucesso !!
[/i]

Mesmo mostrando a mensagem que os e-mails foram enviados, os mesmo não são enviados.
Meus parâmetros são os seguintes:

[i]$frase = {de};
//// provedor anterior HOSTNET - troca o ‘@’ por ‘=’ para o usuário
//// $frase = ereg_replace("@", “”, strtr($frase, “@”, “=”));
$frase = $frase;

sc_lookup(ds,“select senha from contas_email where conta = ‘{de}’”);
$senha = {ds[0][0]};

$smtp = ‘smtp.clube-a.com’;
$usr = $frase;
$pw = $senha;
$de = {de};
$para_x = {de};
$assunto = {assunto};
$mensagem = {menssagem};
$tipo_mens = ‘H’;
$copias = {enviar};
$tp_copias = ‘BCC’;
//// provedor anterior HOSTNET - $porta = ‘25’
$porta = ‘587’;
$tp_conexao = ‘S’;

$anexos = {anexos} . ‘;’ . {anexo1} . ‘;’ . {anexo2} . ‘;’ . {anexo3} . ‘;’ . {anexo4} . ‘;’ . {anexo5};

sc_mail_send ($smtp, $usr, $pw, $de, $para_x, $assunto, $mensagem, $tipo_mens, $copias, $tp_copias, $porta, $tp_conexao, $anexos);

if ({sc_mail_ok})
{
echo {para};
echo “Enviados {sc_mail_count} e-mail com sucesso !!”;
}
else
{
sc_erro_mensagem({sc_mail_erro});
}
[/i]

As mudanças no script foram as seguintes:
Para o usuário do provedor HOSTNET trocava o ‘@’ (usuario@meusite.com) por ‘=’
A porta para o provedor HOSTNET é ‘25’
A porte para o provedor UOLHOSTS é ‘587’

Existem apenas essas diferenças, porém o erro persiste da forma como mostrado acima.
Aguém poderia me ajudar a desvendar esse problema?

Amigo, vc conseguiu resolver este problema? To passando pela mesma coisa aqui.
Valeu.
Rodrigo

Estava com o mesmo problema. No meu caso tive que configurar pra enviar email pelo GMAIL.
A porta correta lá era 465. Só que tem que tomar cuidado pois com o tipo de conexão NÃO segura não passava os emails. Tive que mudar para conexão Segura (“S”).

Pois então, eu to tentando pelo gmail mesmo, mas não envia de jeito nenhum, dá uma mensagem de timed out pra tls://smtp.gmail.com:465.

Já tentei de várias formas e não manda.

1º coloque o conexão segura “S”.
2º verifique se seu servidor não está com essa porta bloqueada. pois no meu caso isso tb tava me atrapalhando.

sc_mail_send($smtp, $usuario, $senha,’$email_origem’,$email_destino,$assunto,$body,“H”,"" ,"" ,465, “S” );

O meu estava dando timeout tb… foi assim que resolvi

Já olhei meu firewall e parece certo, a mensagem de erro continua:

(Connection timed out)
Undefined index: file
Undefined index: line
Uncaught Error of type [Swift_ConnectionException] with message [The SMTP connection failed to start [tls://smtp.gmail.com:465]: fsockopen returned Error Number 110 and Error String ‘Connection timed out’]
@0 sajax_handle_client_request() in /var/www/planet/form_envio_arquivos/form_envio_arquivos.php on line 1282
@1 call_user_func_array() in /var/www/planet/form_envio_arquivos/form_envio_arquivos_sajax.php on line 122
@2 ajax_form_envio_arquivos_submit_form() in on line
@3 form_envio_arquivos_apl::controle() in /var/www/planet/form_envio_arquivos/form_envio_arquivos.php on line 1510
@4 form_envio_arquivos_apl::nm_acessa_banco() in /var/www/planet/form_envio_arquivos/form_envio_arquivos_apl.php on line 968
Swift::handshake expects parameter 1 to be of type Swift_Events_ResponseEvent.

Meu firewall //Trecho para liberacao do google mail:
#iptables -A OUTPUT -m multiport -p tcp --dport 465,995,587 -j ACCEPT
#iptables -A OUTPUT -m multiport -p tcp --sport 465,995,587 -j ACCEPT
#iptables -A FORWARD -m multiport -p tcp --dport 465,995,587 -j ACCEPT
#iptables -A FORWARD -m multiport -p tcp --sport 465,995,587 -j ACCEPT
#iptables -A INPUT -m multiport -p tcp --dport 465,995,587 -j ACCEPT
#iptables -A INPUT -m multiport -p tcp --sport 465,995,587 -j ACCEPT
#iptables -A INPUT -m multiport -p tcp --dport 465,995,587 -m state --state ESTABLISHED,RELATED -j ACCEPT
#iptables -A INPUT -p tcp --sport 465,995,587 -m state --state ESTABLISHED,RELATED -j ACCEPT
#iptables -A OUTPUT -p tcp --dport 465,995,587 -m state --state ESTABLISHED,RELATED -j ACCEPT
#iptables -A OUTPUT -p tcp --sport 465,995,587 -m state --state ESTABLISHED,RELATED -j ACCEPT
#iptables -A FORWARD -p tcp --dport 465,995,587 -m state --state ESTABLISHED,RELATED -j ACCEPT
#iptables -A FORWARD -p tcp --sport 465,995,587 -m state --state ESTABLISHED,RELATED -j ACCEPT

Rotina de envio:
/**
* Send a simple email
*/
// Email parameters
$mail_smtp_server = ‘smtp.gmail.com’; // SMTP server name or IP address
$mail_smtp_user = ‘XXXXXX@gmail.com’; // SMTP user name
$mail_smtp_pass = ‘XXXXXXX’; // SMTP password
$mail_from = ‘XXXXXX@gmail.com’; // From email
$mail_to = ‘email_do_cliente@gmail.com’; // To email
$mail_subject = ‘Assunto…xxx’; // Message subject
$mail_message = ‘Mensagem…xxx’;
$mail_format = ‘H’; // Message format: (T)ext or (H)tml

// Send email
sc_mail_send($mail_smtp_server,
             $mail_smtp_user,
             $mail_smtp_pass,
             $mail_from,
             $mail_to,
             $mail_subject,
             $mail_message,
             $mail_format,"","",465,"S");

Tenho ate algumas rotinas agendadas no servidor que me mandam email pelo gmail tranquilo. O erro deve estar na função do php.

Vou continuar tentando…
Valeu!

Olá RRMA, conseguiu resolver essa parada ?? meu email deu o mesmo problema (servidor LOCAWEB)

tentei $mail_format,"","",465,""); no final mais deu a seguinte mensagem:

ERRO
FSOCKOPEN()[function.fsockopen]:unable to conect to tls://smtp.slords.com.br:465 (unable to find the socket transport “tls” - did you forget to enable it when you configured PHP?)
Swift:handshake expect parameter 1 to be of type Swift_Events_REsponseEvent.

Eduardo, no final das contas era apenas meu firewall mesmo que estava barrando a comunicação. Fiz alguns ajustes e passou a enviar normal.
Caso seu server seja um cloud locaweb como o meu eu posso te passar as mudanças do meu firewall pra ver se te ajuda.
Boa sorte aí!
Rodrigo

.