2

I get the following error whenever a user tries to request a password reset email:

The e-mail could not be sent.
Possible reason: your host may have disabled the mail() function.

As per recommendations I've read across the web, I tried several SMTP plugins. None worked. Finally, I got some debug information from one. First, the SMTP settings I used (for gmail)

server:  smtp.gmail.com
port: 587
Security:  TLS
Require Auth:  Yes
User:  <myuser>@gmail.com
Pass:  mypass

Here was the result:

The result was:

bool(false)
The full debugging output is shown below:

object(PHPMailer)#365 (65) {
  ["Priority"]=>
  int(3)
  ["CharSet"]=>
  string(5) "UTF-8"
  ["ContentType"]=>
  string(10) "text/plain"
  ["Encoding"]=>
  string(4) "8bit"
  ["ErrorInfo"]=>
  string(95) "The following From address failed: <myuser>@gmail.com : Called Mail() without being connected"
  ["From"]=>
  string(20) "<myuser>@gmail.com"
  ["FromName"]=>
  string(10) "Tim Shutes"
  ["Sender"]=>
  string(0) ""
  ["ReturnPath"]=>
  string(0) ""
  ["Subject"]=>
  string(50) "WP Mail SMTP: Test mail to <myuser>@gmail.com"
  ["Body"]=>
  string(68) "This is a test email generated by the WP Mail SMTP WordPress plugin."
  ["AltBody"]=>
  string(0) ""
  ["MIMEBody:protected"]=>
  string(69) "This is a test email generated by the WP Mail SMTP WordPress plugin.
"
  ["MIMEHeader:protected"]=>
  string(453) "Date: Wed, 11 Sep 2013 20:33:18 +0000
Return-Path: <myuser>@gmail.com
To: <myuser>@gmail.com
From: Tim Shutes 
Subject: WP Mail SMTP: Test mail to <myuser>@gmail.com
Message-ID: 
X-Priority: 3
X-Mailer: PHPMailer 5.2.4 (http://code.google.com/a/apache-extras.org/p/phpmailer/)
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=UTF-8

"
  ["mailHeader:protected"]=>
  string(0) ""
  ["WordWrap"]=>
  int(0)
  ["Mailer"]=>
  string(4) "smtp"
  ["Sendmail"]=>
  string(18) "/usr/sbin/sendmail"
  ["UseSendmailOptions"]=>
  bool(true)
  ["PluginDir"]=>
  string(0) ""
  ["ConfirmReadingTo"]=>
  string(0) ""
  ["Hostname"]=>
  string(0) ""
  ["MessageID"]=>
  string(0) ""
  ["MessageDate"]=>
  string(0) ""
  ["Host"]=>
  string(14) "smtp.gmail.com"
  ["Port"]=>
  string(2) "25"
  ["Helo"]=>
  string(0) ""
  ["SMTPSecure"]=>
  string(3) "ssl"
  ["SMTPAuth"]=>
  bool(true)
  ["Username"]=>
  string(20) "<myuser>@gmail.com"
  ["Password"]=>
  string(9) "<mypass>"
  ["AuthType"]=>
  string(0) ""
  ["Realm"]=>
  string(0) ""
  ["Workstation"]=>
  string(0) ""
  ["Timeout"]=>
  int(10)
  ["SMTPDebug"]=>
  int(2)
  ["Debugoutput"]=>
  string(4) "echo"
  ["SMTPKeepAlive"]=>
  bool(false)
  ["SingleTo"]=>
  bool(false)
  ["SingleToArray"]=>
  array(0) {
  }
  ["LE"]=>
  string(1) "
"
  ["DKIM_selector"]=>
  string(0) ""
  ["DKIM_identity"]=>
  string(0) ""
  ["DKIM_passphrase"]=>
  string(0) ""
  ["DKIM_domain"]=>
  string(0) ""
  ["DKIM_private"]=>
  string(0) ""
  ["action_function"]=>
  string(0) ""
  ["Version"]=>
  string(5) "5.2.4"
  ["XMailer"]=>
  string(0) ""
  ["smtp:protected"]=>
  object(SMTP)#364 (11) {
    ["SMTP_PORT"]=>
    int(25)
    ["CRLF"]=>
    string(2) "
"
    ["do_debug"]=>
    int(2)
    ["Debugoutput"]=>
    string(4) "echo"
    ["do_verp"]=>
    bool(false)
    ["Timeout"]=>
    int(10)
    ["Timelimit"]=>
    int(30)
    ["Version"]=>
    string(5) "5.2.4"
    ["smtp_conn:private"]=>
    bool(false)
    ["error:private"]=>
    array(1) {
      ["error"]=>
      string(37) "Called Mail() without being connected"
    }
    ["helo_rply:private"]=>
    NULL
  }
  ["to:protected"]=>
  array(1) {
    [0]=>
    array(2) {
      [0]=>
      string(23) "<myuser>@gmail.com"
      [1]=>
      string(0) ""
    }
  }
  ["cc:protected"]=>
  array(0) {
  }
  ["bcc:protected"]=>
  array(0) {
  }
  ["ReplyTo:protected"]=>
  array(0) {
  }
  ["all_recipients:protected"]=>
  array(1) {
    ["<myuser>@gmail.com"]=>
    bool(true)
  }
  ["attachment:protected"]=>
  array(0) {
  }
  ["CustomHeader:protected"]=>
  array(0) {
  }
  ["message_type:protected"]=>
  string(5) "plain"
  ["boundary:protected"]=>
  array(3) {
    [1]=>
    string(35) "b1_b0121eb40a93fb27be20cbb901b9250f"
    [2]=>
    string(35) "b2_b0121eb40a93fb27be20cbb901b9250f"
    [3]=>
    string(35) "b3_b0121eb40a93fb27be20cbb901b9250f"
  }
  ["language:protected"]=>
  array(18) {
    ["authenticate"]=>
    string(35) "SMTP Error: Could not authenticate."
    ["connect_host"]=>
    string(43) "SMTP Error: Could not connect to SMTP host."
    ["data_not_accepted"]=>
    string(30) "SMTP Error: Data not accepted."
    ["empty_message"]=>
    string(18) "Message body empty"
    ["encoding"]=>
    string(18) "Unknown encoding: "
    ["execute"]=>
    string(19) "Could not execute: "
    ["file_access"]=>
    string(23) "Could not access file: "
    ["file_open"]=>
    string(33) "File Error: Could not open file: "
    ["from_failed"]=>
    string(35) "The following From address failed: "
    ["instantiate"]=>
    string(36) "Could not instantiate mail function."
    ["invalid_address"]=>
    string(15) "Invalid address"
    ["mailer_not_supported"]=>
    string(25) " mailer is not supported."
    ["provide_address"]=>
    string(54) "You must provide at least one recipient email address."
    ["recipients_failed"]=>
    string(45) "SMTP Error: The following recipients failed: "
    ["signing"]=>
    string(15) "Signing Error: "
    ["smtp_connect_failed"]=>
    string(22) "SMTP Connect() failed."
    ["smtp_error"]=>
    string(19) "SMTP server error: "
    ["variable_set"]=>
    string(30) "Cannot set or reset variable: "
  }
  ["error_count:protected"]=>
  int(2)
  ["sign_cert_file:protected"]=>
  string(0) ""
  ["sign_key_file:protected"]=>
  string(0) ""
  ["sign_key_pass:protected"]=>
  string(0) ""
  ["exceptions:protected"]=>
  bool(false)
}
The SMTP debugging output is shown below:

SMTP -> ERROR: Failed to connect to server: Permission denied (13)

The following From address failed: <myuser>@gmail.com : Called Mail() without being connected

This behavior is ONLY present on the remote site. The password recovery emails work just fine on the local build. Additionally, my understanding is, if this was just a webhost issue, that the SMTP plugins would have worked, which they didn't.

Can anyone point me in the right direction here? You can see the behavior here: abundancellc.com/wp-admin - try to request password reset and type in "testuser" as the user.

Incidentally, I had no problem setting up "testuser" but I never got an email with my password - even though I requested one. What's going on? If it's the rackspace servers, why won't the SMTP plugins work?

  • 2
    This is an issue with your host. – Wyck Sep 14 '13 at 19:02
2
+50

Sounds like a server configuration problem, not a WordPress thing. You said you were using Rackspace? I don't have personal experience with Rackspace but it appears that they have some known issues with the default PHP mail() function. See:

  1. http://feedback.rackspace.com/forums/71021-product-feedback/suggestions/1873281-fully-support-php-mail-function-
  2. http://www.joshuawinn.com/huge-email-delays-on-rackspace-cloud-sites-dont-use-php-mail/

The primary issue is that sending straight through mail() doesn't authenticate the sender, using open relays, which is something that could be abused and seems that Rackspace delays or doesn't support well. That's what it's not working as you'd normally expect.

Great first step in trying to use an SMTP plugin, as that is the commonly accepted workaround. If PHPMailer is giving you problems, it may be an issue with the original configuration. You can also try port 465 using SSL instead of TLS, which is often the biggest issue. Also, are you using any extra security mechanisms from Google, such as two-factor auth or application-specific passwords? That's another thing to watch out for.

If you have any other details or evidence do share.

  • Turns out the host wasn't rackspace... but I DO think the issue is host related. Weird that I couldn't get the SMTP plugins to work though. Am I right that my 2 options are getting the host to support mail() or getting the SMTP plugin to work? – timshutes Sep 16 '13 at 13:48
  • Generally yes. It definitely does sound host-related, and it's odd to have this much difficulty for some basic functionality. Are you tied to the host, or do you have some flexibility there? My thinking is if you are having this much trouble getting just mail to work, who knows what other issues you'll have down the road. – Joshua Sep 16 '13 at 18:32
  • 1
    we're switching hosts. This answer was great. especially appreciate the research into rackspace since that factored into our host switch. Thanks! – timshutes Sep 17 '13 at 19:00
1

Your host may be blocking the email as a 'relay', since the 'from' email is not on your domain, but on gmail.

You should (normally) set the 'from' to something like admin@mydomain.com , changing 'mydomain.com' to your actual domain. And, the admin@mydomain.com email account needs to exist.

So because you sent mail from myuser@gmail.com, the domain name of the 'from' value doesn't match the mail record of your domain, the hosting service will block that as a 'mail relay' attempt. (Spammers like to use mail relays for their spam, so most hosting services - and recipients - will block that attempt.)

So, when using the mail() function, make sure that your 'from' parameter is admin@mydomain.com , so the domain in the from email matches your domain. If you want them to reply to a different email address, then set the 'Reply-To' header.

Even though you got it working, one always should make sure that the sender email (the 'from' email address) belongs to your domain, and that the sender email account exists on your domain/hosting account.

0

Did you make sure that your user admin has a corresponding "email"?

Mine didn't, and once I added the e-mail it was solved.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.