Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde, estou usando o PHPMailer para envio de e-mails no meu código, porém logo que tentava enviar o e-mail já dava o erro. Reparei que então o código abaixo aparentemente não estava sendo 'lido', e que aparentemente estava buscando as configurações que estavam na class.phpmailer.php, onde não devia. Já verifiquei com o provedor e esta tudo ok.
$mail = new \PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
//$mail->CharSet = 'UTF-8';
//$mail->SMTPSecure = 'tls';
$mail->Debug = 3;
$mail->Host = "smtp.******.com.br";
$mail->Username = 'teste@teste.com.br';
$mail->Password = '0000000';
$mail->Port = "587";
Alguma dica que possam me ajudar ?
Obrigado.
Olá,
Essa declaração está correta?
$mail = new \PHPMailer();
Porque desta barra antes do nome da classe?
Samuel Cunha
Samuel, o uso de barras antes de funções e classes são para utilizar namespace. Este recurso funciona em versões do PHP acima de 5.3.0
Porém, acho desnecessário o uso neste caso, retire. Você incluiu o PHPMailerAutoload.php ?
Sua versão é igual ou superior a esta ? Você responder minha pergunta com outra pergunta, aí fica difícil. Qual é a mensagem que aparece no navegador quando você tenta enviar o email ?
Desculpe, realmente não fui muito claro em explicar minha dúvida, vou tentar explicar melhor :)
Seguinte .. baixei a biblioteca phpMailer e coloquei na pasta, e a biblioteca contém os arquivos 'class.phpmailer.php, class.smtp.php e PHPMailerAutoLoad.php'. O arquivo class.phpmailer.php vem com códigos pré definindo configurações do envio de e-mail, porém foi criado um arquivo Email.inc.php (código abaixo) onde foi definido as reais configurações de e-mail que eu desejo, porém percebi que as configurações estão sendo adquiridas do arquivo da biblioteca 'class.phpmailer.php', e o que eu preciso é que as configurações do arquivo Email.inc.php.
Se ajudar estou usando Ubuntu Server.
<?php
namespace lib\inc;
class Email {
function sendMail($mail_from, $mail_from_name, $mail_to, $mail_to_name, $subject, $message, $anexo) {
// Inclui o arquivo class.phpmailer.php localizado na pasta phpmailer
require_once("../lib/phpmailer/class.phpmailer.php");
// Inicia a classe PHPMailer
$mail = new \PHPMailer();
// Define os dados do servidor e tipo de conexão
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$mail->IsSMTP(); // Define que a mensagem será SMTP
$mail->SMTPAuth = true;
//$mail->CharSet = 'UTF-8';
//$mail->SMTPSecure = 'tls';
$mail->Debug = 3;
$mail->Host = "smtp.dominio.com.br";
$mail->Username = 'usuario@dominio.com.br'; // Usuário do servidor SMTP
$mail->Password = 'senha'; // Senha do servidor SMTP
$mail->Port = "587"; $mail->AddAddress($mail_to, $mail_to_name);
$mail->addReplyTo($mail_from, $mail_from_name); $mail->Body = $message;
$mail->AltBody = $message; $mail->ClearAllRecipients();
$mail->ClearAttachments(); if (!$enviado) {
echo "Não foi possível enviar o e-mail.";
echo "<b>Informações do erro:</b> " . $mail->ErrorInfo;
} else {
return true;
}
}
}Chame apenas o arquivo PHPMailerautoload.php, não é necessário a inclusão deste arquivo de forma direta.
require_once("../lib/phpmailer/class.phpmailer.php");
troque por:
require_once("../lib/phpmailer/PHPMailerAutoload.php");
Certifique-se de que o caminho está correto.
Obrigado pela ajuda, porém não funcionou :(
Reparei que local pelo wamp funciona normalmente, porém hospedei o sistema em um servidor Ubuntu e quando tento por lá não funciona, acontece o erro que citei acima. Deve ser algo no Ubuntu. Caso tenham alguma dica ficarei grato.
Sua informação é muito vaga. Qual o erro que aparece ? notei que o debug está ativo, então retornará o erro.