Hi, Lucca, I would advise you to create a temporary file and then delete it from the server.
I took the liberty of including a function to generate the random name to complete the example.
function gerarIdentificadorLink($senha = 0, $tamanho = 20, $maiusculas = true, $numeros = true, $simbolos = false){
// Caracteres de cada tipo
$lmin = 'abcdefghijklmnopqrstuvwxyz';
$lmai = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$num = '1234567890';
$simb = '!@#$%*-';
// Variáveis internas
$retorno = '';
$caracteres = '';
// Agrupamos todos os caracteres que poderão ser utilizados
$caracteres .= $lmin;
if ($maiusculas) $caracteres .= $lmai;
if ($numeros) $caracteres .= $num;
if ($simbolos) $caracteres .= $simb;
// Calculamos o total de caracteres possíveis
$len = strlen($caracteres);
for ($n = 1; $n <= $tamanho; $n++) {
// Criamos um número aleatório de 1 até $len para pegar um dos caracteres
$rand = mt_rand(1, $len);
// Concatenamos um dos caracteres na variável $retorno
$retorno .= $caracteres[$rand-1];
}
return $retorno;
}
/* Gera a string aleatoria */
$identificador = gerarIdentificadorLink();
/* Indica o caminho destino */
$Destino = '/var/www/html/';
/* Indica o nome temporário do arquivo */
$Arquivo = 'Arquivao_'.$identificador.'.pdf';
/* Cria a pasta temporária para armazenamento do arquivo */
if (!file_exists($Destino . $identificador)) {
mkdir($Destino . $identificador);
$Destino = $Destino . $identificador . '/';
}
/* monta o caminho completo do arquivo */
$caminhoCompletoArquivo = $Destino . $Arquivo;
(...)
/* executa a geração do seu PDF*/
$pdf->Output('f', $caminhoCompletoArquivo);
/* adiciona o arquivo físico ao e-mail */
$mail->AddAttachment($caminhoCompletoArquivo);
/* envia o e-mail */
$enviado = $mail->Send();
/* exclui o arquivo pdf do servidor */
if (file_exists ($ArquivoCaminhoCompleto)) {
unlink($ArquivoCaminhoCompleto);
}
I hope it helps.