criar uma aplicacao que envie email automaticos

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