Ir para conteúdo

Arquivado

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

Jorge Gomess

PHPMailer não funciona no servidor online

Recommended Posts

Boa noite!

Uso o PHPMailer, e o envio quando o site está hospedado em um servidor local ocorre tudo certo, entretanto, quando enviado a partir de um servidor online ele não dá certo, ocorre um erro, segue o debug:

Connection: opening to smtp.live.com:587, timeout=300, options=array ()
Connection: opened
SERVER -> CLIENT: 220 BLU436-SMTP112.smtp.hotmail.com Microsoft ESMTP MAIL Service, Version: 8.0.9200.16384 ready at Tue, 13 Dec 2016 16:09:24 -0800
CLIENT -> SERVER: EHLO ifsertao-pe-afranio.pe.hu
SERVER -> CLIENT: 250-BLU436-SMTP112.smtp.hotmail.com Hello [31.170.166.34]250-TURN250-SIZE 41943040250-ETRN250-PIPELINING250-DSN250-ENHANCEDSTATUSCODES250-8bitmime250-BINARYMIME250-CHUNKING250-VRFY250-TLS250-STARTTLS250 OK
CLIENT -> SERVER: STARTTLS
SERVER -> CLIENT: 220 2.0.0 SMTP server ready
CLIENT -> SERVER: EHLO site.com.br
SERVER -> CLIENT: 250-BLU436-SMTP112.smtp.hotmail.com Hello [31.170.166.34]250-TURN250-SIZE 41943040250-ETRN250-PIPELINING250-DSN250-ENHANCEDSTATUSCODES250-8bitmime250-BINARYMIME250-CHUNKING250-VRFY250-AUTH LOGIN PLAIN XOAUTH2250 OK
CLIENT -> SERVER: AUTH LOGIN
SERVER -> CLIENT: 334 VXNlcm5hbWU6
CLIENT -> SERVER: aWZzZXJ0YW8tcGUtYWZyYW5pb0BvdXRsb29rLmNvbQ==
SERVER -> CLIENT: 334 UGFzc3dvcmQ6
CLIENT -> SERVER: Y2VudHJvYWZyYW5pbzE2
SERVER -> CLIENT: 235 2.7.0 Authentication succeeded
CLIENT -> SERVER: MAIL FROM:<email@hotmail.com>
SERVER -> CLIENT: 250 2.1.0 email@hotmail.com....Sender OK
CLIENT -> SERVER: RCPT TO:<email2@outlook.com>
SERVER -> CLIENT: 250 2.1.5 email2@outlook.com
CLIENT -> SERVER: DATA
SERVER -> CLIENT: 354 Start mail input; end with <CRLF>.<CRLF>
CLIENT -> SERVER: Date: Tue, 13 Dec 2016 21:09:10 -0300
CLIENT -> SERVER: To: =?UTF-8?Q?IF_SERT=C3O_PE_-_Centro_de_Refer=EAncia_de_Afr=E2nio?= <email2@outlook.com>
CLIENT -> SERVER: From: Nome <email2@hotmail.com>
CLIENT -> SERVER: Reply-To: Nome <email2@hotmail.com>
CLIENT -> SERVER: Subject: ajsdasd
CLIENT -> SERVER: Message-ID: <ba9ab7d6e3beb5a1ab88e21a743d5ac7@site.com.br>
CLIENT -> SERVER: X-Mailer: PHPMailer 5.2.16 (https://github.com/PHPMailer/PHPMailer)
CLIENT -> SERVER: MIME-Version: 1.0
CLIENT -> SERVER: Content-Type: multipart/alternative;
CLIENT -> SERVER: boundary="b1_ba9ab7d6e3beb5a1ab88e21a743d5ac7"
CLIENT -> SERVER: Content-Transfer-Encoding: 8bit
CLIENT -> SERVER:
CLIENT -> SERVER: This is a multi-part message in MIME format.
CLIENT -> SERVER:
CLIENT -> SERVER: --b1_ba9ab7d6e3beb5a1ab88e21a743d5ac7
CLIENT -> SERVER: Content-Type: text/plain; charset=us-ascii
CLIENT -> SERVER:
CLIENT -> SERVER: asdad
CLIENT -> SERVER: Nova mensagem via contato do site:Nome: nomeE-mail: email@hotmail.com
CLIENT -> SERVER: Assunto: ajsdasdData: 13/12/2016 21:09
CLIENT -> SERVER:
CLIENT -> SERVER:
CLIENT -> SERVER: --b1_ba9ab7d6e3beb5a1ab88e21a743d5ac7
CLIENT -> SERVER: Content-Type: text/html; charset=us-ascii
CLIENT -> SERVER:
CLIENT -> SERVER: <p style="font: 14px 'Trebuchet MS', Arial, Helvetica, sans-serif; color:#333">asdad</p><hr>
CLIENT -> SERVER: <h4>Nova mensagem via contato do site:</h4><p><strong>Nome: </strong>nome<br><strong>E-mail: </strong>email@hotmail.com<br>
CLIENT -> SERVER: <strong>Assunto: </strong>ajsdasd<br><strong>Data: </strong>13/12/2016 21:09</p>
CLIENT -> SERVER:
CLIENT -> SERVER:
CLIENT -> SERVER:
CLIENT -> SERVER: --b1_ba9ab7d6e3beb5a1ab88e21a743d5ac7--
CLIENT -> SERVER:
CLIENT -> SERVER: .
SERVER -> CLIENT: 550 5.3.4 554-554 5.2.0 STOREDRV.Deliver; delivery result banner
SMTP ERROR: DATA END command failed: 550 5.3.4 554-554 5.2.0 STOREDRV.Deliver; delivery result banner
SMTP Error: data not accepted.

Função do php para envio do e-mail:

function sendMail($subject, $message, $sender, $senderName, $destination, $destinationName, $reply = NULL, $replyName = NULL) {
    require ('mail/PHPMailerAutoload.php');

    $mailer = new PHPMailer;
    $mailer->isSMTP();
    $mailer->SMTPDebug = 3;
    $mailer->Debugoutput = 'html';
    $mailer->CharSet = 'UTF-8';
    $mailer->SMTPAuth = true;
    $mailer->SMTPSecure = 'tls';
    $mailer->Host = mailhost;
    $mailer->Port = mailport;
    $mailer->Username = mailuser;
    $mailer->Password = mailpass;
    $mailer->SetFrom($sender, utf8_decode($senderName));
    if ($reply) {
        $mailer->AddReplyTo($reply, utf8_decode($replyName));
    }
    $mailer->AddAddress($destination, utf8_decode($destinationName));
    $mailer->Subject = "$subject";
    $mailer->isHTML(true);
    $mailer->Body = $message;
    $mailer->AltBody = strip_tags($message);
    if ($mailer->send()) {
        echo "<script>alert('E-mail enviado com sucesso!');</script>";
    } else {
        $error = 'Error -> '.$mailer->ErrorInfo;
//        echo "<script>alert('$error');</script>";
        die("$error");
    }

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que este trecho precisa colocar os dados reais:

$mailer->Host = mailhost;
$mailer->Port = mailport;
$mailer->Username = mailuser;
$mailer->Password = mailpass;

Mas dê uma olhada nesse tutorial, seguindo ele eu consegui fazer funcionar: http://blog.thiagobelem.net/enviar-e-mails-pelo-php-usando-o-phpmailer

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que este trecho precisa colocar os dados reais:

$mailer->Host = mailhost;
$mailer->Port = mailport;
$mailer->Username = mailuser;
$mailer->Password = mailpass;

Mas dê uma olhada nesse tutorial, seguindo ele eu consegui fazer funcionar: http://blog.thiagobelem.net/enviar-e-mails-pelo-php-usando-o-phpmailer

Mas esses daí são os dados reais, dados estes do e-mail administrativo. Só estão em constantes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema não é a autenticação, pois o log mostra "Authentication succeeded"

Aparentemente, o problema é o destinatário da mensagem.

Segundo os logs, o remetente é email@hotmail.com e o destinatário é email2@outlook.com.

Tente usar emails reais e veja se o problema persiste

Lembrando que muitos servidores SMTP restringem o remetente. Por exemplo, para enviar de email@hotmail.com, é necessário logar no SMTP do Hotmail com a conta email@hotmail.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
    • Por First
      Olá a todos!
       
      Quando eu tento fazer o login me mostra esse erro "Could not log you in."; Alguém sabe me ajudar a resolver esse problema no meu código?
      <?php require_once("core/init.php"); if (Input::exists()) { if (Token::check(Input::get("token"))) { $validate = new Validate(); $validation = $validate->check($_POST, array( "username" => array("required" => true), "password" => array("required" => true) )); if ($validation->passed()) { $user = new User(); $remember = (Input::get("remember")) === "on" ? true : false; $login = $user->login(Input::get("username"), Input::get("password"), $remember); if ($login) { Session::flash("home", "Welcome back!"); Redirect::to("index.php"); } else { echo "Could not log you in."; } } else { foreach ($validation->errors() as $error) { echo $error."<BR>"; } } } } ?> <form action="" method="POST"> <div class="field"> <label for="username">Username</label> <input type="text" name="username" id="username"> </div> <div class="field"> <label for="password">Password</label> <input type="password" name="password" id="password"> </div> <div class="field"> <label for="remember"> <input type="checkbox" name="remember" id="remember"> Remember me </label> </div> <input type="hidden" name="token" value="<?php echo Token::generate(); ?>"> <input type="submit" value="Log in"> </form>  
       
      Desde já obrigado.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.