Enviar arquivo de uma pasta para e-mail
Ola galera boa noite
Pessoal preciso enviar um arquivo por e-mail, onde o sistema faz backups do banco de dados manual e automatico
preciso que seja enviado apenas o sql que for gerado tanto manual quanto automatico
ambos esta fazendo o backups normalmente sem problemas
Segue o código a baixo
<?php
session_start();
require_once('../../database/config.php');
require_once('../../database/config.database..php');
require_once('../../includes/funcoes.php');
require_once('controller.php');
if (!is_dir('../../backups')) {
@mkdir('../../backups', 0777, true);
}
$name_backup = "Backups_" . date("ymdHis");
$querySQL = DBCreate('backups', [
'name' => "Banco_de_dados_" . $name_backup,
'type' => 'sql',
'status' => 'Iniciado'
], true);
$queryZIP = DBCreate('backups', [
'name' => "Arquivos_ZIP_" . $name_backup,
'type' => 'zip',
'status' => 'Iniciado'
], true);
try {
require_once("Mysqldump.php");
$dump = new Ifsnop\Mysqldump\Mysqldump('mysql:host=' . DB_HOSTNAME . ';dbname=' . DB_DATABASE . '', '' . DB_USERNAME . '', '' . DB_PASSWORD . '');
$dump->start("../../backups/Banco_{$name_backup}.sql");
if (file_exists("../../backups/Banco_{$name_backup}.sql")) {
DBUpdate('backups', array('status' => 'concluido'), "id = '{$querySQL}'");
}} catch (\Exception $e) {
$return = [
"title" => "Oops!",
"msg" => "Erro ao exportar banco de dados.",
"icon" => "error"
];
DBUpdate('backups', array('status' => 'Erro ao exportar banco de dados'), "id = '{$querySQL}'");
Redireciona('?erro');
}
try {
$filename = "Arquivos_ZIP_{$name_backup}.zip";
$rootPath = realpath('../../wa/');
$zip = new ZipArchive();
$zip->open("../../backups/$filename", ZipArchive::CREATE | ZipArchive::OVERWRITE);
$files = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($rootPath),
RecursiveIteratorIterator::LEAVES_ONLY
);
foreach ($files as $name => $file) {
if (!$file->isDir()) {
$filePath = $file->getRealPath();
$relativePath = substr($filePath, strlen($rootPath) + 1);
$zip->addFile($filePath, $relativePath);
}
}
$zip->close();} catch (\Exception $e) {
$return = [
"title" => "Oops!",
"msg" => "Erro ao criar arquivo de backup no formato zip!",
"icon" => "error"
];
DBUpdate('backups', array('status' => 'Erro ao criar arquivo de backup no formato zip'), "id = '{$queryZIP}'");
}
DBUpdate('backups', array('status' => 'concluido'), "id = '{$queryZIP}'");
if (empty($return)) {
$return = [
"title" => "Deu Certo!",
"msg" => "Backup Realizado com Sucesso!",
"icon" => "success"
];
}
echo json_encode($return);
if (!empty(getConfigBackup('mail_notify'))) {
@require_once('../../controller/class.phpmailer/PHPMailerAutoload.php');
$mail = new PHPMailer();
$mail->CharSet = "UTF-8";
$mail->isSMTP(true);
$mail->SMTPSecure = getConfigBackup('mail_seguranca');
$mail->Host = getConfigBackup('mail_host');
$mail->Username = getConfigBackup('mail_email');
$mail->Password = getConfigBackup('mail_senha');
$mail->Port = getConfigBackup('mail_porta');
$mail->From = getConfigBackup('mail_email');
$mail->FromName = ConfigPainel('site_nome');
$mail->Subject = "Seu Backup está pronto!";
if (strstr(getConfigBackup('mail_notify'), ';')) {
$email = explode(';', getConfigBackup('mail_notify'));
foreach ($email as $key => $value) {
$mail->AddAddress($value);
}
} else {
$mail->AddAddress(getConfigBackup('mail_notify'));
}
$dados = "Olá, o Backup do painel " . ConfigPainel('site_nome') . " foi realizado com sucesso.
Ele está disponível em seu dashboard na área de backups.
Acesse o Painel para Gerenciar seus backups.";
$mail->Body = "<div id='m_-7598057918015146334m_-2331253013811829785wrapper' dir='ltr' style='background-color:#f7f7f7;margin:0;padding:70px 0 70px 0;width:100%'>
<table border='0' cellpadding='0' cellspacing='0' height='100%' width='100%'>
<tbody>
<tr>
<td align='center' valign='top'>
<div id='m_-7598057918015146334m_-2331253013811829785template_header_image'></div>
<table border='0' cellpadding='0' cellspacing='0' width='600' id='m_-7598057918015146334m_-2331253013811829785template_container' style='background-color:#ffffff;border:1px solid #dedede;border-radius:3px!important'>
<tbody>
<tr>
<td align='center' valign='top'>
<table border='0' cellpadding='0' cellspacing='0' width='600' id='m_-7598057918015146334m_-2331253013811829785template_header' style='background-color:#333333;border-radius:3px 3px 0 0!important;color:#ffffff;border-bottom:0;font-weight:bold;line-height:100%;vertical-align:middle;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif'>
<tbody>
<tr>
<td id='m_-7598057918015146334m_-2331253013811829785header_wrapper' style='padding:36px 48px;display:block'>
<h1 style='color:#ffffff;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-size:30px;font-weight:300;line-height:150%;margin:0;text-align:left'>Backup Realizado com sucesso</h1>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td align='center' valign='top'>
<table border='0' cellpadding='0' cellspacing='0' width='600' id='m_-7598057918015146334m_-2331253013811829785template_body'>
<tbody>
<tr>
<td valign='top' id='m_-7598057918015146334m_-2331253013811829785body_content' style='background-color:#ffffff'>
<table border='0' cellpadding='20' cellspacing='0' width='100%'>
<tbody>
<tr>
<td valign='top' style='padding:48px'>
<div id='m_-7598057918015146334m_-2331253013811829785body_content_inner' style='color:#636363;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-size:14px;line-height:150%;text-align:left'>
<p style='margin:0 0 16px'></p>
$dados
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>";
$mail->IsHTML(true);
$mail->Send();
$mail->ClearAllRecipients();
$mail->ClearAttachments();
}
Lembrando so ser enviado o que for sql
Ex: Banco_de_dados_Backups_210412193634.sql
SQL_Backup_210412180942.sql
Conforme for gerando o **backups**
no create tem type sql
Não sei isso vai ajudar em algo mais a tabela **backups **esta assim
INSERT INTO `backups` (`id`, `name`, `type`, `created_at`, `status`) VALUES(1, 'SQL_Backup_210412180942', 'sql', '2021-04-12 21:09:42', 'concluido'),
(2, 'ZIP_Backup_210412180942', 'zip', '2021-04-12 21:09:42', 'Iniciado'),
(3, 'Banco_de_dados_Backups_210412193634', 'sql', '2021-04-12 22:36:34', 'concluido'),
(4, 'Arquivos_ZIP_Backups_210412193634', 'zip', '2021-04-12 22:36:34', 'Iniciado');
Se puderem da esta ajuda fico gratoDiscussão (0)
Carregando comentários...