Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

greg_kaippert

Enviar arquivo JSON como anexo por email

Recommended Posts

Bom dia pessoal. Estou tentando enviar um arquivo json por email. Mas primeiramente, gostaria de tirar umas dúvidas. Meu código é esse.

 

<?php
include("conexao.php");
try {
$data = date('Y-m-d H:i:s');
if(isset($_POST['id'])){ // inicio do atualizar status 1, essa função aqui que ATIVA a INSTALAÇÃO
$id = $_POST['id'];
$resu = $pdo->query("UPDATE cad_instal SET status = '1' WHERE id_instalacao = $id")or die(mysql_error());
//echo $id;
$resu = $pdo->query('SELECT * FROM cad_instal');
$emparray = array();
while($row = $resu->fetch(PDO::FETCH_ASSOC))
{
$emparray[] = $row;
}
echo json_encode($emparray);
//cria o arquivo no formato json
$fp = fopen('instal/instal.json', 'w');
fwrite($fp, json_encode($emparray));
fclose($fp);
}
} /* fecha o TRY */
catch(Exception $e)
{
print "ERRO!:". $e->getMessage() . "<br>";
die();
}
?>
Gostaria que quando uma pessoa clicar em ATIVAR INSTALAÇÃO, seja criado um ARQUIVO JSON com aquele ID que ATIVOU, e o mesmo enviado para um email. Eu consegui criar um arquivo JSON, mas não estou conseguindo filtrar por ID, e também não sei como faço para mandar por email como ANEXO esse arquivo JSON. Se eu não fui bem claro, explico melhor, desde já agradeço galera.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, na verdade ele está funcionando, em relação ao filtrar por ID, já consegui resolver em parte. Mas a minha dúvida mesmo é quando a pessoa clicar em ATIVAR INSTALAÇÃO, irá criar um arquivo JSON com certas informações, isso eu já fiz, porém tenho que mandar esse arquivo JSON por email. Entendeu ? Assim que for criado o arquivo, tem que ser mandando por email.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então meu amigo. Não sei se estou fazendo certo, e tbm não sei se essa configuração de SMTP está certa, uso HOTMAIL. Por enquanto não chegou nenhum email. Meu código é esse abaixo:

 

<?php
include("conexao.php");
require_once('phpmailer/PHPMailerAutoload.php');
try {
// inicio do atualizar status para 1, essa função aqui que ATIVA a INSTALAÇÃO e quando ativada, tem que criar o arquivo json com as respectivas informações e que por sinal já está funcionando, porem, sempre que criar um arquivo json, tem que mandar o email com esse arquivo JSON anexado. O que estou fazendo de errado.
if(isset($_POST['id'])){
$id = $_POST['id'];
$resu = $pdo->query("UPDATE cad_instal SET status = '1', data_ativacao = NOW() WHERE id_instalacao = $id ")or die( mysql_error());
//echo $id;
/* inicio do criar arquivo json */
$resu = $pdo->query('SELECT id_instalacao, setor, fabricante FROM cad_instal WHERE status = 1');
$emparray = array();
//$emparray[$id];
while($row = $resu->fetch(PDO::FETCH_ASSOC))
{
$emparray[$id] = $row;
}
echo json_encode($emparray[$id]);
//cria o arquivo no formato json
$fp = fopen('phpmailer/instal.json', 'w');
fwrite($fp, json_encode($emparray));
fclose($fp);
/* fim do criar arquivo json */
/* inicio do enviar arquivo json por email */
$mail = new PHPMailer();
// define que será usado SMTP
$Mailer->IsSMTP();
// envia email HTML
$Mailer->isHTML(true);
// codificação UTF-8, a codificação mais usada recentemente
$Mailer->Charset = 'UTF-8';
// Configurações do SMTP
$Mailer->SMTPAuth = true;
//$Mailer->SMTPSecure = 'ssl';
$Mailer->Host = 'smtp.live.com'; // não tenho certeza
$Mailer->Port = 465; // não tenho certeza
$Mailer->Username = 'blablabla@hotmail.com'; // meu endereço para acessar o hotmail
$Mailer->Password = '***********'; // minha senha do hotmail, certo ?
// E-Mail do remetente (deve ser o mesmo de quem fez a autenticação
// nesse caso seu_login@gmail.com)
$Mailer->From = 'blablabla@hotmail.com'; // mesmo email que eu coloquei em cima, para acessar o hotmail
// Nome do remetente
$Mailer->FromName = 'Gregory';
// assunto da mensagem
$Mailer->Subject = 'Instalacao';
// corpo da mensagem
$Mailer->Body = 'Mensagem em HTML';
// corpo da mensagem em modo texto
$Mailer->AltBody = 'Mensagem em texto';
// adiciona destinatário (pode ser chamado inúmeras vezes)
$Mailer->AddAddress('blablabla@hotmail.com'); // mesmo email de cima, não tenho certeza
// adiciona um anexo
$Mailer->AddAttachment('phpmailer/instal.json'); // esse é o arquivo criado que eu quero mandar por email assim que criado
// verifica se enviou corretamente
if ($Mailer->Send())
{
echo "Enviado com sucesso";
}
else
{
echo 'Erro do PHPMailer: ' . $Mailer->ErrorInfo;
}
/* fim do enviar arquivo json por email */
}
/* inicio do desativar */
if(isset($_POST['id1'])){ // inicio do atualizar status 0
$id1 = $_POST['id1'];
$resu = $pdo->query("UPDATE cad_instal SET status = '0' WHERE id_instalacao = $id1 ")or die(mysql_error());
//echo $id1;
}
}
catch(Exception $e)
{
print "ERRO!:". $e->getMessage() . "<br>";
die();
}
?>

 

Se alguem puder dar uma luz aí, agradeço galera.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.