Ir para conteúdo

Arquivado

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

Fernando_Henrique

Envio de Emails

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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";
// Define o remetente
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        $mail->From = 'usuario@dominio.com.br'; // Seu e-mail
        $mail->FromName = 'Usuario'; // Seu nome
// Define os destinatário(s)
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        $mail->AddAddress($mail_to, $mail_to_name);
        $mail->addReplyTo($mail_from, $mail_from_name);
//$mail->AddCC('ciclano@site.net', 'Ciclano'); // Copia
//$mail->AddBCC('fulano@dominio.com.br', 'Fulano da Silva'); // Cópia Oculta
// Define os dados técnicos da Mensagem
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        $mail->IsHTML(true); // Define que o e-mail será enviado como HTML
        $mail->CharSet = 'UTF-8'; // Charset da mensagem (opcional)
// Define a mensagem (Texto e Assunto)
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        $mail->Subject = $subject; // Assunto da mensagem
        $mail->Body = $message;
        $mail->AltBody = $message;
// Define os anexos (opcional)
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        if (!empty($anexo)) {
            $mail->AddAttachment($anexo,$message);  // Insere um anexo
        }
// Envia o e-mail
        $enviado = $mail->Send();
// Limpa os destinatários e os anexos
        $mail->ClearAllRecipients();
        $mail->ClearAttachments();
// Exibe uma mensagem de resultado
        if (!$enviado) {
            echo "Não foi possível enviar o e-mail.";
            echo "<b>Informações do erro:</b> " . $mail->ErrorInfo;
        } else {
            return true;
        }
    }


}

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

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.