Jump to content

PHPMAILER - Envio emails PHP


rocks

Recommended Posts

Boa tarde a todos,

Estou a desenvolver uma aplicação web e uma das funções era o envio de emails apos submeter um form.

Funciona tudo muito bem em localhost mas ao passar para um servidor sempre que tento enviar o email é dado erro 

SMTP -> ERROR: Failed to connect to server: Connection timed out (110)
The following From address failed: xxx@iscte-iul.pt : Called Mail() without being connected

 

function smtpmailer($para, $de, $de_nome, $replyto , $cc ,$assunto, $corpo)
{
    global $error;
    $mail = new PHPMailer();
    $mail->CharSet = 'UTF-8';
    $mail->IsSMTP();        // Ativar SMTP
    $mail->SMTPDebug = 1;        // Debugar: 1 = erros e mensagens, 2 = mensagens apenas
    $mail->SMTPAuth = true;        // Autenticação ativada
    $mail->SMTPSecure = 'tls';   
    //$mail->SMTPSecure = 'TLS';    
    $mail->Host = 'smtp.office365.com';    // SMTP utilizado
    $mail->Port = 587;        // A porta 587 deverá estar aberta em seu servidor
    $mail->Username = GUSER;
    $mail->Password = GPWD;
    $mail->SetFrom($de, $de_nome);
    $mail->AddReplyTo($replyto, $de_nome);

    $mail->AddCC($cc, $de_nome);
    $mail->Subject = $assunto;
    $mail->Body = $corpo;
    $mail->AddAddress($para);

     if (!$mail->Send()) {
         $error = 'Mail error: ' . $mail->ErrorInfo;
         return false;
     } else {
         $error = 'Mensagem enviada!';
         return true;
     }
 }

 

O que poderá causar este erro. Poderá ser permissoes ? 

 

Obrigado a todos 

  Edited by rocks
Link to comment
Share on other sites

Viva

Se funciona em modo de desenvolvimento, e não em produção, é possível que o servidor onde está alojado esteja a bloquear a comunicação, tens que questionar a empresa do alojamento. Esta ideia vem da resposta do servidor ser um timeout na comunicação.

 

Também pode ser necessário adicionar o IP da aplicação no servidor de email para autorizar a ligação.

Não sei mais detalhes, porque o código diz Gmail e o SMTP aponta para o office365, são serviços diferentes.

 

Se poderes esclarecer também era bom.

Edited by Ivo Vicente
  • Thanks 1

Feito é melhor que perfeito

Link to comment
Share on other sites

1 hora atrás, Ivo Vicente disse:

Viva

Se funciona em modo de desenvolvimento, e não em produção, é possível que o servidor onde está alojado esteja a bloquear a comunicação, tens que questionar a empresa do alojamento. Esta ideia vem da resposta do servidor ser um timeout na comunicação.

 

Também pode ser necessário adicionar o IP da aplicação no servidor de email para autorizar a ligação.

Não sei mais detalhes, porque o código diz Gmail e o SMTP aponta para o office365, são serviços diferentes.

 

Se poderes esclarecer também era bom.

Eu tirei o exemplo de gmail mas adaptei para office365.

include("PHPMailer/class.phpmailer.php");

define('GUSER', 'rmmio@iscte-iul.pt');    //

define('GPWD', $pw);        // 

Pois acredito que o problema seja a comunicação com o servidor pois em localhost funciona tudo na boa. mas nem sei bem o que tenho de pedir para ser permitido. 

 
Link to comment
Share on other sites

Podes começar por questionar a empresa de alojamento se for uma empresa ou neste caso se for um trabalho da Universidade (vi pelo endereço) alojada num servidor da universidade questionas o departamento responsável.

 

Em ambos os casos podem estar a bloquear essa porta, não é usual mas acontece.

  • Vote 1

Feito é melhor que perfeito

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.