Boa tarde, pessoal!
Eu fiz um código em JavaScript que chama um script em PHP para o envio de um e-mail, anexando neste e-mail um arquivo que está no próprio servidor.
Porém, ao executar esse código de JavaScript, o e-mail é enviado, mas o anexo não é colocado na mensagem. Se eu rodar manualmente o script em PHP que é chamado pelo código de JavaScript "# php send.php", o e-mail passa a ser enviado com o anexo.
Vocês podem me ajudar, por favor? Acredito que seja algo relacionado à permissões, porém eu não estou encontrando a solução.
Aqui está o código em JavaScript:
$scope.sendMail = function() {
jQuery.ajax({
type: "POST",
url: root.root + "send.php",
success: function() {
console.log('sucesso!');
jQuery('.log-message').html(alert ("Mensagem enviada com sucesso!\n\nEm breve retornaremos seu e-mail com uma resposta. Obrigado."));
}
});
}
}
Aqui está o código em PHP:
<?php
require '/var/www/html/wordpress/wp-content/themes/site/assets/php/PHPMailer/PHPMailerAutoload.php';
$email = new PHPMailer;
$email->isSMTP();
$email->Host = 'smtp.gmail.com'; // Specify main and backup SMTP servers
$email->SMTPAuth = true; // Enable SMTP authentication
$email->Username = 'email@gmail.com'; // SMTP username
$email->Password = 'senha'; // SMTP password
$email->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$email->Port = 587;
$email->setFrom("email@gmail.com", "Site Principal");
$email->Subject = 'Teste123';
$email->Body = 'Apenas testando.';
$email->addAddress('emaildestino@gmail.com');
$email->addAttachment('/tmp/teste.tar.gz');
//send the message, check for errors
if (!$email->send()) {
echo "Mailer Error: " . $email->ErrorInfo;
} else {
echo "Message sent!";
}