Postado Outubro 25, 2015 9 anos Este é um post popular. Olá cidadãos do TibiaKing!Como tenho visto muitas pessoas tendo problemas com o sistema de envio de e-mail do Lost Account através do PHP Mailer, resolvi postar pra vocês uma pequena alteração que fiz no código para utilizar o MailGun no disparo dos e-mails no lugar de um SMTP convencional. Alguns avisos: O MailGun é uma plataforma estrangeira, que estou indicando por ter uma API de fácil entendimento. Não sou responsável pela plataforma ou suporte da mesma. O plano grátis do MailGun suporta 10.000 envios por mês. Caso você não tenha um domínio para utilizar (no-ip não é considerado como domínio), terá que fazer os envios através do sandbox deles, que permite 300 envios por hora, limitados a 10.000 por mês. Para começar o tutorial, se cadastre na plataforma do MailGun aqui: https://mailgun.com/signup (depois que cadastrar, confirme sua conta através do link enviado por e-mail)Em seguida, adicione seu domínio aqui: https://mailgun.com/app/domains/newPara confirmar seu domínio, será necessário criar algumas entradas de DNS que estarão explicadas na página do MailGun.Assim que o domínio for adicionado, clique no mesmo. (Caso não tenha domínio, clique no domínio sandbox).Precisaremos dos seguintes dados para continuar: API Key API Base URL Default SMTP Login Depois que obtiver os dados acima, abra o arquivo lostaccount.php e procure pela seguinte parte de código: $mail = new PHPMailer(); if ($config['site']['smtp_enabled']) { $mail->IsSMTP(); $mail->Host = $config['site']['smtp_host']; $mail->Port = $config['site']['smtp_port']; $mail->SMTPAuth = $config['site']['smtp_auth']; $mail->Username = $config['site']['smtp_user']; $mail->Password = $config['site']['smtp_pass']; } $mail->IsMail(); $mail->IsHTML(true); $mail->From = $config['site']['mail_address']; $mail->AddAddress($account->getCustomField('email')); $mail->Subject = $config['server']['serverName']." - Link to >set new password to account<"; $mail->Body = $mailBody; $enviado = $mail->Send(); if($enviado) { $account->set('email_code', $newcode); $account->set('next_email', (time() + $config['site']['email_lai_sec_interval'])); $account->save(); $main_content .= '<br />Link with informations needed to set new password has been sent to account e-mail address. You should receive this e-mail in 15 minutes. Please check your inbox/spam directory.'; } else { $account->set('next_email', (time() + 60)); $account->save(); $main_content .= '<br />An error occorred while sending email! Try again or contact with admin. ('.$mail->ErrorInfo.')'; }Remova todo esse código e substitua por: $to = ''.$account->getCustomField('email').''; $subject = ''.$config['server']['serverName'].' - Set >new password to account<'; $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_USERPWD, 'api:SUA API KEY'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_URL, 'https://api.mailgun.net/v2/SEUDOMINIO/messages'); curl_setopt($ch, CURLOPT_POSTFIELDS, array('from' => 'SEU OT <email@seuemail.com>', 'to' => $to, 'subject' => $subject, 'html' => $mailBody, 'text' => $mailBody)); $result = curl_exec($ch); $info = curl_getinfo($ch); curl_close($ch); if($info['http_code'] == 200){ $account->set('email_code', $newcode); $account->set('next_email', (time() + $config['site']['email_lai_sec_interval'])); $account->save(); $main_content .= '<br />Link with informations needed to set new password has been sent to account e-mail address. You should receive this e-mail in 15 minutes. Please check your inbox/spam directory.'; }E em seguida altere as seguintes linhas para configurar de acordo com sua conta:curl_setopt($ch, CURLOPT_USERPWD, 'api:key-xxxxxxx'); //Substitua key-xxxxxxx pela sua API Key 'https://api.mailgun.net/v2/SEUDOMINIO/messages'); //Altere SEUDOMINIO com o domínio que se encontra no final da API Base URL array('from' => 'SEU OT <email@seuemail.com>', //Substitua pelo nome e e-mail do jogo (caso tenha domínio). Caso não tenha domínio, utilize o e-mail que está em Default SMTP Login E pronto, seu Lost Account já estará funcionando normalmente!Observações: O código final tem algumas modificações para facilitar na configuração e na utilização, mas como a versão final foi desenvolvida para venda, resolvi postar uma versão simplificada que resolve o problema. É necessário ter o PHP cURL funcionando para usar esse método. O código foi feito em cima do Gesior 2012: https://github.com/gesior/Gesior2012 Façam bom proveito (Esse tutorial foi completamente escrito por mim, incluindo o código. Qualquer cópia deve ser previamente autorizada e conter os devidos créditos.)
Postado Outubro 25, 2015 9 anos Seu tópico foi aprovado e movido para a seção correta! Muito obrigado pela sua contribuição, nós do Tibia King agradecemos. Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.
Postado Novembro 10, 2015 9 anos Configurei tudo corretamente como indicado no tutorial e quando tento acessar minha página fica indisponível
Postado Novembro 12, 2015 9 anos Autor Em 10/11/2015 em 23:41, fironfox disse: Configurei tudo corretamente como indicado no tutorial e quando tento acessar minha página fica indisponível Confere seu código, algum erro passou batido.
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.