PHPMailer Lite & GMAIL SMTP: электронные письма не отправляются в Yahoo Mail, как отлаживать? - PullRequest
0 голосов
/ 15 декабря 2010

Я пытаюсь отправить электронную почту, используя phpMailer и GMail SMTP.Он отлично работает, отправляя электронную почту на другие учетные записи Gmail, но при отправке в Yahoo, почта никогда не попадает туда.Я читал об отладке с использованием IP-адресов и тому подобного, но я не разбираюсь в этой области?

вот код:

  $mail->Mailer='smtp';

   try {
    $mail->SMTPAuth   = true;                  // enable SMTP authentication
    $mail->SMTPSecure = "tls";                 // sets the prefix to the servier
    $mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
    $mail->Port       = 587;                   // set the SMTP port for the GMAIL server
    $mail->Username   = "__email__";  // GMAIL username
    $mail->Password   = "__pass__";            // GMAIL password
    $mail->SMTPDebug  = 2;

    $a = md5(uniqid(rand(), true)); //create a unique validation code

    //These are the variables for the email

    $mail->AddAddress (trim($_POST['email']),trim($_POST['username'])); // this is the email address collected form the form
    $mail->Subject = "Registration"; // Subject
    $mail->Body = "Thank you for registering\n your security code is ".$a;
    $mail->Send();


    echo "check your email to complete registration"; 
   } catch (phpmailerException $e) {
     echo $e->errorMessage(); //Pretty error messages from PHPMailer
   } catch (Exception $e) {
     echo $e->getMessage(); //Boring error messages from anything else!
   }

   $mail->ClearAddresses();

обновление: обнаружена проблема: наш сервер попал в черный списокYahoo (не по моей вине), так что это полтора дня впустую.

Ответы [ 2 ]

0 голосов
/ 15 декабря 2010

Вместо gmail я бы посоветовал вам использовать почтовый сервис Google App Engine .Это делает всю тяжелую работу за вас.Кроме того, потому что gmail имеет ограничение на отправку, в то время как механизм приложений намного выше.Он также имеет щедрую бесплатную квоту (1000 получателей / день.

). Вот пример отправки сообщения от текущего вошедшего в систему пользователя, используя аннотацию login_required для перенаправления пользователя на страницу входа, еслине вошли в систему:

from google.appengine.api import mail
from google.appengine.api import users
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import login_required

class InviteFriendHandler(webapp.RequestHandler):
    @login_required
    def post(self):
        to_addr = self.request.get("friend_email")
        if not mail.is_email_valid(to_addr):
            # Return an error message...
            pass

        message = mail.EmailMessage()
        message.sender = users.get_current_user().email()
        message.to = to_addr
        message.body = """
I've invited you to Example.com!

To accept this invitation, click the following link,
or copy and paste the URL into your browser's address
bar:

%s
        """ % generate_invite_link(to_addr)

        message.send()
0 голосов
/ 15 декабря 2010

Так как он работает с пользователями Gmail, мой гость мог бы сказать, что какой-то phpMailer неправильно отправляет ваше имя пользователя и пароль.Сервер Gmail не примет ретрансляцию электронной почты, если вы не прошли аутентификацию.

Один вопрос, почему бы вам не использовать свой собственный почтовый сервер, это поможет отладить и узнать, почему письма не отправляются.

...