E-mail Validations not Arriving

Some (many) users trying to sign up to my site aren't getting their validation e-mails.  I tried with a Yahoo account and never got anything in the inbox or junk folder.

I tried resending to no avail.

How can I figure this problem out? Is there a way to send a test e-mail to one of the accounts that worked?

Is there logging information for the plug-in?

  • 1. Create a mail.php file and copy the following content in the php file.

    <?php
        $to      = 'nobody@example.com'; // <- Enter the email ID of the person whom you want to send this mail
        $subject = 'Test Mail';
        $message = 'Hello! It Worked';
        $headers =     'From: webmaster@example.com' . "\r\n" . // <- Enter the sender Email ID Ex: no-reply@yourdomain.com
                    'X-Mailer: PHP/' . phpversion();
    
        mail($to, $subject, $message, $headers);
          
      //Email response
        echo "Check You Mail!";
    ?>

    2. Now edit the following 2 parameters: 

    • $to - Enter the receiver email ID
    • $headers - Enter the sender email ID 

    3. Execute this mail.php file

    If you are getting the mail then there is some problem somewhere in your source code. If you are not getting the email then your service provider has blocked you from sending any mails. In that case contact your hosting service provider.

  • Thanks. I'm just using the standard plug-in for validation, so I have to guess that it works... I'll give this a shot! I'm definitely noticing some strange behaviour on the service provider side...

     

  • There is a high chance that its because of the service provider. Most of the shared hosting account comes with a limitation of 500-1000 mails in one hour or even less. If someone exceed that limit then their account gets locked from sending any further mails.

  • I see the e-mail in the PHP log, so it's going through mail().

    I tried that e-mail script to an account and it worked but the elgg validation e-mail did not, even though I see it in the PHP mail() log.

     

  • And it worked at one point to one e-mail address and now it doesn't. Very strange.

     

  • Hmm. So, I never got the validation e-mail but when I validated my user (manually) and tried "Reset password", I *did* get that e-mail.

     

  • Then probably a 3rd party plugin might be creating the problem.

    Disable all the non-standard plugin and check if the problem still exist.

  • Well, you know the server is capable of sending emails, and you know from the log that the email is being sent, it's just not being received.  I think this isn't a code issue but may be a server reputation issue.  Could be that emails from your server are just riding the edge of being spam filtered and there's something in the content of those emails that's just pushing those ones over the edge.

  • I had a similar problem and it had to do with, as I recall an 80 character PHP mail() subject send limit. The combination of the name and the name of the community in the subject was over 80 characters. Try testing with a couple of short names or change the name of your community to something shorter.

  • First of all, why would you have 80 characters in a subject line?