criar uma aplicacao que envie email automaticos

Boa Tarde,

Na aplicação blank só existe um evento que é o onExecute, porém, ele é a mesma coisa do onLoad, pois ele é executado assim que carrega a página.

Rodrigo Lins.

estou com dificuldade na criacao dessa aplicacao ainda nao consegui cria-la se tiver algum exemplo poder me mandar agradeço

Bom Dia,

Em qual ponto exatamente você está tendo dificuldade? Você conseguiu entender como seria o funcionamento da aplicação, o que precisaria ter? Se sim, seria só seguir os passos por partes e ir implementando. Como, por exemplo, implementar a verificação que precisa fazer antes de enviar o email, então seria utilizar a macro sc_lookup (com o select necessario) e validar se seria para enviar ou não o email. Depois de estar OK este passo, seria ir para a parte de enviar o email, conectar com o smtp, etc, utilizando a macro sc_mail_send, depois de testado estas partes e estando da forma que deseja você pode ir para o passo de enviar emails automaticamente através do gerenciador de tarefas do windows.

Acho que estes seriam mais ou menos passos para conseguir fazer a aplicação. Lembrando que o que eu disse anteriormente, vai independer do tipo de aplicação/evento, poderia ser ate no evento onLoad de um formulário e depois de funcionando corretamente você poderia colocar no tipo de aplicação desejada (blank).

Espero ter ajudado.

Rodrigo Lins.

A minha dificuldade agora esta sendo php mesmo para pegar a data para fazer a logica,
mas estou estudando como fazer isso, por esta trabalhando com datas pela primeira vez
essa esta sendo a minha dificuldade se tiver alguma dica ou algum material o site sobre esse topico agradeco

// leitura das datas
$dia = date(‘d’);
$mes = date(‘m’);
$ano = date(‘Y’);

// o padrão pt-br (dd/MM/YYYY) é definido pelo formato de exibição do SC
$data = “$ano$mes$dia”;

Se a DATA foi pega pela macro sc_Loockup e desse jeito tambem que eu pego cada elemento da data .

Não entendi. Quer saber como pegar a data pelo sc_lookup?

a data que eu vou fazer a logica e meu bd para pegar a data eu uso sc_loockup,ela e tranformada em uma variavel do tipo data nesse (aaaa/mm/dd) formato para fazer a minha logica para enviar o email automatico em encima dessa data .

para separar dia, o mes e ano dessa data seria como?

Já está separado:

// Pega a data atual do sistema e separado em dia, mes e ano
$dia = date(‘d’);
$mes = date(‘m’);
$ano = date(‘Y’);

// Monta a data atual do sistema no formato do BD. Uso mySQL
$data = “$ano$mes$dia”;

Aqui vc pegou uma data na sua tabela:

sc_lookup(datatab, “SELECT SUA_DATA FROM SUA_TABELA WHERE COD=‘1’”);

$minha_data = {datatab[0][0]}; // Pega o primeiro campo da primeira linha do lookup

Você pode fazer uma comparação:

if($minha_data > $Data)
{

// Rotina de código para TRUE

}

else
{

// Rotina de código para FALSE

}

eu estou com dificudade na minha logica ,eu peguei o campo data do meu bd atravez sc_lookup , quando eu pego valor do dia atravez da funcao explode do php para somar mas 5 dias no valor da data ele considera como se fosse numero normal entao quando o dia 30 fica 35 ,tambem a parte da data so do campo vazio so funciona um de cada vez nao os dois ao mesmo tempo alguem pode me ajudar .

$dia = date(‘d’);
$mes = date(‘m’);
$ano = date(‘Y’);
$data = “$ano$mes$dia”;

sc_lookup(dataset,“SELECT
data_ins_ext
FROM
s_inspecao_ext
WHERE
cod_insp_ext=’{cod_insp_ext}’”);
{dataset[0][0]};

$minha_data = {dataset[0][0]};
$m= explode("-",($minha_data));
$m1=$m[2]+5;
$data_limit ="$m[0]$m[1]$m1";

if(empty({superv_ins_exp}) && empty){medidas_arc_ext}
{
if (($data_limit > $data))
{
$setor = {cod_setor};
$num = {cod_insp_ext};
$a = “Messias”;
$b = “Antonio”;
$c = “Robson”;
$d = “Tito”;
$e = “Projeto-SSA”;
$f = “Sesmet”;
$g = “Transporte”;
$h = “Administracao”;

if   ($setor == "9" )
{
$nome = "$a";
$para = "rodrigo.manager@hotmail.com ";
$copia = "rodrigowebdevelop@gmail.com";

$mensagem ="<p align=center><font size=5><em><font color=#000000 size=4><u>Esse e-mail é 

automátio e não é para ser respondido.

$nome,

A inspeção nº $num foi colocada no sistema, solicito que responda com brevidade.

Caso queira, acesse <a href=http://wwwww e responda imediatamente essa inspeção.

Atenciosamente,duvida esse ainda nao foi respondido

Sesmet - Eletec-SSA Agora

";
}
sc_mail_send ("smtp.aaaaaaa.com.br", "ssssssss@eeeeee.com.br", "loca1020",

“xxxxxxxxxx@zzzzzzzzzzzz.com.br”,’$para’,‘Inspeção de Campo para Responder’,’$mensagem’, ‘H’,’$copia’, ‘CCC’, ‘’,’’,’’)

}

}

ELSE
{
echo " o campo esta prenchido ";
}

Boa Tarde,

Rodrigo para você fazer a soma de datas utilize a macro sc_date, ele já irá tratar as datas,etc para você.


sc_date (Data, formato, operador, D, M, A)

Esta macro tem por objetivo o cálculo do incremento ou decremento de datas. Para sua utilização são necessários alguns parâmetros, conforme a seguir:

data - Campo de data que contém a data a ser modificada
formato - Formatação em que o campo de data se encontra
operador - “+” para incremento e “-” para decremento
D - Número de dias a incrementar ou decrementar
M - Número de meses a incrementar ou decrementar
A - Número de anos a incrementar ou decrementar

Ex1:
{datanasc} = sc_date ({datanasc}, “dd/mm/aaaa”, "+ ", 30, 0, 0);

Ex2:
$nova_data = sc_date ({datanasc}, “aaaa-mm-dd”, “-”, 15, 3, 2);

Ex3:
{dt_inclusao} = sc_date (date(‘Ymd’), “aaaammdd”, “-”, 0, 1, 1);

Dica:

Para certificar-se do formato da data, antes de utilizar a função, ponha em sua fórmula um comando:
echo "form_data = " . {nome do campo de data};
Rode a aplicação e veja o formato correto

Espero ter ajudado.

Rodrigo Lins.

quando eu uso essa

macro Ex1:
{datanasc} = sc_date ({datanasc}, “dd/mm/aaaa”, "+ ", 30, 0, 0);

a data do meu formulario aparece toda desconfigurada eu na consigo entender aparece os numeros todos desorganizados

ja consegui conserta utilizar a macro

o meu problema esta nessa condicao ela nao esta me dando resultado esperado

if(empty({superv_ins_exp}) && empty){medidas_arc_ext}
{
if (($data_limit > $data))
{
$setor = {cod_setor};
$num = {cod_insp_ext};
$a = “Messias”;
$b = “Antonio”;
$c = “Robson”;
$d = “Tito”;
$e = “Projeto-SSA”;
$f = “Sesmet”;
$g = “Transporte”;
$h = “Administracao”;

if ($setor == “9” )
{
$nome = “$a”;
$para = "rodrigo.manager@hotmail.com “;
$copia = "rodrigowebdevelop@gmail.com”;

$mensagem ="

Esse e-mail é
automátio e não é para ser respondido.

$nome,

A inspeção nº $num foi colocada no sistema, solicito que responda com brevidade.

Caso queira, acesse <a href=http://wwwww e responda imediatamente essa inspeção.

Atenciosamente,duvida esse ainda nao foi respondido

Sesmet - Eletec-SSA Agora

";

}
sc_mail_send (“smtp.aaaaaaa.com.br”, “ssssssss@eeeeee.com.br”, “loca1020”,
“xxxxxxxxxx@zzzzzzzzzzzz.com.br”,’$para’,‘Inspeção de Campo para Responder’,’$mensagem’, ‘H’,’$copia’, ‘CCC’, ‘’,’’,’’)

}

}

ELSE
{
echo " o campo esta prenchido ";
}

Meio confuso esse topico.

peloque percebi tem um espaço na frente do + na macro, pode ser isso.

Bom Dia,

Com relaçào a não estar mostrando os dados corretamente, quando está utilizando a macro sc_date, deve ser por causa do formato da data, que o informado na macro tem que ser o formato interno do banco (o que ele retorna para a aplicação), geralmente é no seguinte padrão yyyy-mm-dd .

E com relação a condição, vai depender da regra de negócio, do que é necessário, para saber se vai atender ou não a solução…

Rodrigo Lins.

Minha regra de negocio e a seguinte que eu estou tentando aplicar se a data do meu banco de dados for x dias + 5 for igual a data atual e se campo de resposta estiver vazio ,envio um email notificando que ainda nao foi obtida resposta a mais de 5 dias .

atraves desta regra

$dia = date(‘d’);
$mes = date(‘m’);
$ano = date(‘Y’);
$data = “$ano$mes$dia”;

$data_limit = sc_date ({data_ins_ext},“aaaammdd”,"+",5,00,00);

echo"

Aqui a data do BD $data_limit

";//um teste para saber se esta aparecendo a data esperada

if (($data> $data_limit )) // primeiro a comparacao das datas
{
if(empty({superv_ins_exp}) && empty{medidas_arc_ext})// sendo a data atual maior que a data limit vejo se os campos de resposta estao prenchidos caso nao esteja preenchido executo o proximo bloco

{// de acordo com seto e numero da especao vai um email para pessoa responsavel
$setor = {cod_setor};
$num = {cod_insp_ext};
$a = “Messias”;
$b = “Antonio”;
$c = “Robson”;
$d = “Tito”;
$e = “Projeto-SSA”;
$f = “Sesmet”;
$g = “Transporte”;
$h = “Administracao”;

if ($setor == “9” )
{
$nome = “$a”;
$para = "rodrigo.manager@hotmail.com “;
$copia = "rodrigowebdevelop@gmail.com”;

$mensagem ="

Esse e-mail é
automátio e não é para ser respondido.

$nome,

A inspeção nº $num foi colocada no sistema, solicito que responda com brevidade.

Caso queira, acesse <a href=http://wwwww e responda imediatamente essa inspeção.

Atenciosamente,duvida esse ainda nao foi respondido

Sesmet - Eletec-SSA Agora

";

}
sc_mail_send (“smtp.aaaaaaa.com.br”, “ssssssss@eeeeee.com.br”, “loca1020”,
“xxxxxxxxxx@zzzzzzzzzzzz.com.br”,’$para’,‘Inspeção de Campo para Responder’,’$mensagem’, ‘H’,’$copia’, ‘CCC’, ‘’,’’,’’)

}

}

ELSE
{
echo " o campo esta prenchido ";
}

Bom Dia,

Pelo que percebi poderia ser continuado com o seu código e alterado apenas alguns detalhes, que estarei marcando em vermelho logo abaixo.

------------=

$dia = date(‘d’);
$mes = date(‘m’);
$ano = date(‘Y’);
$data = “$ano$mes$dia”;

$data_limit = sc_date ({data_ins_ext},“aaaammdd”,"+",5,00,00);

echo"

Aqui a data do BD $data_limit

";//um teste para saber se esta aparecendo a data esperada

if ($data == $data_limit ) // primeiro a comparacao das datas
{
if(empty({superv_ins_exp}) && empty({medidas_arc_ext})) {
// de acordo com seto e numero da especao vai um email para pessoa responsavel
$setor = {cod_setor};
$num = {cod_insp_ext};
$a = “Messias”;
$b = “Antonio”;
$c = “Robson”;
$d = “Tito”;
$e = “Projeto-SSA”;
$f = “Sesmet”;
$g = “Transporte”;
$h = “Administracao”;

if ($setor == “9” ) {
$nome = “$a”;
$para = "rodrigo.manager@hotmail.com “;
$copia = "rodrigowebdevelop@gmail.com”;

$mensagem ="

Esse e-mail é
automátio e não é para ser respondido.

$nome,

A inspeção nº $num foi colocada no sistema, solicito que responda com brevidade.

Caso queira, acesse <a href=http://wwwww e responda imediatamente essa inspeção.

Atenciosamente,duvida esse ainda nao foi respondido

Sesmet - Eletec-SSA Agora

";
}

sc_mail_send (“smtp.aaaaaaa.com.br”, “ssssssss@eeeeee.com.br”, “loca1020”,
“xxxxxxxxxx@zzzzzzzzzzzz.com.br”,’$para’,‘Inspeção de Campo para Responder’,’$mensagem’, ‘H’,’$copia’, ‘CCC’, ‘’,’’,’’)

}

} ELSE {
echo " o campo esta prenchido ";
}

Teste desta maneira

Rodrigo Lins.

Muito Obrigado Rodrigo Assim que testa postarei

Hoje estou em outro setor e so mais atarde vou poder testar

Valeu mesmo pela Luz…

Saudações, Lins!
E se for para enviar a vários destinatários?

Se for todos em umunico email, veja a documentação da macro, lá tem explicação…

mas se quiser fazer envios individuais, faça algo assim:

$Emails = "email1,email2,email3,...";
$SeparaEmail = explode(",", $Emails);
foreach ($SeparaEmail as $EnviarPara)
{
	//linha do envio sc_mail_send - coloca a variavel $EnviarPara 
}
1 Curtida