EMAIL

Tenho um formulario para enviar emails.

Na versão SC6, funcionava beleza! Mas, na versão SC7, está dando erro. O erro não é no formulário e sim ao enviar o email, segue a mensagem abaixo:

Fatal error: Uncaught exception ‘Swift_TransportException’ with message ‘Connection could not be established with host smtp.gmail.com [A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. #10060]’ in C:\Program Files (x86)\NetMake\v7\wwwroot\scriptcase\prod\third\swift\classes\Swift\Transport\StreamBuffer.php:265 Stack trace: #0 C:\Program Files (x86)\NetMake\v7\wwwroot\scriptcase\prod\third\swift\classes\Swift\Transport\StreamBuffer.php(66): Swift_Transport_StreamBuffer->_establishSocketConnection() #1 C:\Program Files (x86)\NetMake\v7\wwwroot\scriptcase\prod\third\swift\classes\Swift\Transport\AbstractSmtpTransport.php(117): Swift_Transport_StreamBuffer->initialize(Array) #2 C:\Program Files (x86)\NetMake\v7\wwwroot\scriptcase\prod\third\swift\classes\Swift\Mailer.php(79): Swift_Transport_AbstractSmtpTransport->start() #3 C:\Program Files (x86)\NetMake\v7\wwwroot\scriptcase\app\samples1\mc in C:\Program Files (x86)\NetMake\v7\wwwroot\scriptcase\prod\third\swift\classes\Swift\Transport\StreamBuffer.php on line 265

Este e’ o codigo que estou utilizando.

[i]
// Email parameters
/*
$mail_smtp_server = ‘smtp.mail.yahoo.com.br’; // SMTP server name or IP address
$mail_smtp_user = ‘slblite’; // SMTP user name
$mail_smtp_pass = ‘???’; // SMTP password *a senha e’ outra…
$mail_porta = ‘587’;
$mail_from = ‘slblite@yahoo.com.br’; // From email
*/

$mail_to = [to_email];
$mail_subject = ‘Relatorio de Remessas ---- (’.$dt_aux.’)’; // Message subject
$mail_message = $out2.’
’.‘Total geral … ‘.
[t_total].’


’.$c_msg;
$mail_format = ‘H’; // Message format: (T)ext or (H)tml

sc_mail_send($mail_smtp_server,
$mail_smtp_user,
$mail_smtp_pass,
$mail_from,
$mail_to,
$mail_subject,
$mail_message,
$mail_format,’’,’’,$mail_porta);

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

Não sei o que fazer…

alguem pode ajudar?

Suas configurações parecem corretas, não consigo ver erro!

Já tentou entrar em contato com seu Host e informar se eles fizeram alguma atualização no servidor? Tipo Firewall, porta 587, etc…

Falar em porta, tenta a 465, apesar que não é muito segura. Tem que sair testando mesmo!

[i]'Connection could not be established with host smtp.gmail.com[/i]

É como se o host tivesse impedindo a conexão!

Estou com esta mesma impressão !

na realidade estou usando um hotmail.com que criei para poder enviar os emails.
Já tentei em outro servidor tipo smtp.gmail.com, e o problema continua.

existe outro meio para contornar esta situação ?

Pesquisei sobre mail() no PHP, usando localhost… mas não estou sabendo usar…

Vou passar o meu que está funfando blz…

Eu uso no evento onAfterInsert

[code]$w_sql = “SELECT parceiro_email,parceiro_status FROM dados.parceiros
where parceiro_marcas_ = {Fabricante} and parceiro_status = 1”;

sc_lookup(wresp,"$w_sql");

if(!empty({wresp[0][0]}))
{
$tam = sizeof({wresp[0][0]});
for($i = 0; $i < $tam; $i++)
{
$email = {wresp[$i][0]};
$smtp = “smtp.provedor.com.br”;
$usr = “contato@provedor1.com.br”;
$pw = “senha”;
$de = “contato@provedor1.com.br”;
$para = $email;
$assunto = “Você tem uma nova cotação!”;
$mensagem = “Olá, acesse o site para responder a sua cotação.

”;
sc_mail_send($smtp,$usr,$pw,$de,$para,$assunto,$mensagem,‘H’, , , 587 );
}
}[/code]

Fatal error: Uncaught exception ‘Swift_TransportException’ with message ‘Failed to authenticate on SMTP server with username “slblite2” using 2 possible authenticators’ in C:\Program Files (x86)\NetMake\v7\wwwroot\scriptcase\prod\third\swift\classes\Swift\Transport\Esmtp\AuthHandler.php:176 Stack trace: #0 C:\Program Files (x86)\NetMake\v7\wwwroot\scriptcase\prod\third\swift\classes\Swift\Transport\EsmtpTransport.php(307): Swift_Transport_Esmtp_AuthHandler->afterEhlo(Object(Swift_SmtpTransport)) #1 C:\Program Files (x86)\NetMake\v7\wwwroot\scriptcase\prod\third\swift\classes\Swift\Transport\AbstractSmtpTransport.php(124): Swift_Transport_EsmtpTransport->_doHeloCommand() #2 C:\Program Files (x86)\NetMake\v7\wwwroot\scriptcase\prod\third\swift\classes\Swift\Mailer.php(79): Swift_Transport_AbstractSmtpTransport->start() #3 C:\Program Files (x86)\NetMake\v7\wwwroot\scriptcase\app\slblite_v6\gcon_rem_selecionadas\gcon_rem_selecionadas.php(1865): Swift_Mailer->send(Object(Swift_Message), Array) #4 C:\Program Files (x86)\NetMake in C:\Program Files (x86)\NetMake\v7\wwwroot\scriptcase\prod\third\swift\classes\Swift\Transport\Esmtp\AuthHandler.php on line 176

Amigos,
este problema me tira do sério !

As vezes funciona, outras NÃO …

agora, não está funcionando

O QUE FAZER ?

Bom dia amigos.
Para enviar e-mail tenho utilizado essa tática.

$nome_formulario = “Nome Form”;
$smtp=“mail.xxxxx.com.br”;
$usr=“xxxx@xxxxx.com.br”;
$pw=“xxxxxxx”;

$de="{email}";
$para=array({email},$usr);
$assunto= $nome_formulario;
$mensagem=“Obrigado sua confirmação em participar do evento foi realizada com sucesso”;

sc_mail_send($smtp, $usr, $pw, $de, $para, $assunto, $mensagem, ‘H’);

if ({sc_mail_ok})
{

sc_alert("Enviado uma cópia do $nome_formulario para seu e-mail $de com sucesso!"); 

}
else
{
sc_erro_mensagem({sc_mail_erro});
}

Não sei se isso pode lhe ajudar…

Pessanha, achei uma coisa estranho, no erro ele informa que não conseguiu autenticar com o smtp do gmail: ‘Connection could not be established with host smtp.gmail.com [A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. #10060]’ i

e no código que você informa o parâmetro do stmp tá para o yahoo: $mail_smtp_server = ‘smtp.mail.yahoo.com.br’; // SMTP server name or IP address

é isso mesmo?

não, não !!!

esta mensagem, foi emitida por teste, que fiz. Eu estava tentando com o gmail, yahoo, hotmail… então eu postei uma das mensagens, desculpe!
eu uso smtp.yahoo.com.br, mesmo e tenho o mesmo problema.

… este problema é aleatório, as vezes funciona e outras não. Realmente não sei o que fazer.

caramba!

este envio de emails, esta de brincadeira comigo!

as vezes funciona, outras não… alguem tem este tipo de problema?

Cara você pode tentar criar um biblioteca com p PHP mailer,

segue um exemplo abaixo de uso com o gmail:
http://www.gn10.com.br/blog/dicas/envie-emails-php-smtp-gmail-google-apps/

valeu, paulomarcelo !

vou verificar… uma luz no fim do tunel…

É isso ai pessanha, quando o scriptcase não resolve nós temos que usar da criatividade para resolver da nossa forma. Algumas vezes a ferramenta está com bug e nem sempre eles resolvem rápido. Logo como temos nossos prazos para os nossos clientes temos que tentar resolver de outra forma e não dá para esperar a solução da Netmake. Mas nesta versão 7 eles estão dando feedback para os bugs reportados e resolvendo nas releases que lançam, o que para mim foi uma boa evolução.

E’ este e um problemao pro a mim, pq eu somente fiz uma atualizacao p/ v7
E claro dei um pouco de banho de loja na aplicacao para impressionar o cliente com
Os novos temas… e cai neste problema. Minha versao anrerior com a v6, estava funcionando…
Obrigado pela ajuda.

Ha, tem como eu atribuir claases esternas no SC ?

Eu nunca usei…

Pessanha tenta com esta função e com uma conta do gmail(dica: faz um teste primeiro numa blank):

[code]// Email parameters
$mail_smtp_server = ‘smtp.gmail.com’; // SMTP server name or IP address
$mail_smtp_user = ‘seuemail@gmail.com’; // SMTP user name
$mail_smtp_pass = ‘suasenha’; // SMTP password
$mail_from = ‘seuemail@gmail.com’; // From email
$mail_to = ‘destinatario@gmail.com’; // To email
$mail_subject = ‘Assunto’; // Message subject
$mail_message = ‘Mensagem’; // Message body
$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’);[/code]

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

Realmente o SC não consegue mais mandar emails usando gmail, hotmail ou yahoo. Se você tiver um domínio próprio aí ele vai funcionar normalmente. Agora é interessante a sugestão do Márcio.

Os procedimentos de envio estão corretos, porem dependendo do servidor de origem o gmail bloqueia autenticação da conta por suspeita de acesso indevido deste cliente que estará enviando o email.
Fiz teste partindo do servidor local e funcionou normal, porem do servidor externo o gmail informou o bloqueio da tentativa de autenticação.
com a conta do gmail pelo servidor que estou utilizando o gmail não permite autenticação.

Boa noite!!!

Pessoal eu me deparei com esse problema na kinghost, o que me parecia ser uma indisponibilidade do servidor de smtp.

A solução e criar uma tabela temporária para depois enviar os emails.

Até mais…

Acho que a mensagem :
Fatal error: Uncaught exception ‘Swift_TransportException’ with message 'Expected response code 250 but got code “530”, with message "530 5.7.0 Must issue a STARTTLS command first.

É porque o SC7 não utilizou TLS/STARTTL

acho que é a única coisa que falta especificar no método do SMTP

https://support.google.com/mail/troubleshooter/1668960?hl=pt-BR#ts=1665119,1665162

Kleyber, eu sempre usei gmail e uso até hoje, funcionando 100%.
A única diferença é que uso um domínio próprio com o gmail. Dei sorte de associar a minha conta gmail quando ainda permitiam fazer isso gratuitamente, hoje o google cobra pra usar domínio próprio.
Se quiserem posso criar uma conta nova no meu domínio para que vcs testem o envio.