PHPMailer GoDaddy Server SMTP Connection Refused

谁都会走 提交于 2019-11-26 11:20:57

As it seems this is a continuing problem, let me add my own experience.

Our website uses PHPMailer and the site is hosted on a GoDaddy linux server. The settings that seemed to be correct (according to everything I could find on SO and the goDaddy support site) were as follows:

SMTP_SERVER: smtpout.secureserver.net (or alternatively relay-hosting.secureserver.net)
SMTP_PORT: 465 //or 3535 or 80 or 25
SMTP_AUTH: true //always
SMTP_Secure: 'ssl' //only if using port 465

After spending 6+ hours trying every variation of ports(25, 3535, 4655), servers relay-hosting.secureserver.net,smtpout.secureserver.net:[port], etc.), usernames, passwords,etc. I called goDaddy. Another 40 minutes later, it was revealed that:

1) the "workspace" email accounts are being retired. That's important because if you have an email account with goDaddy today, you likely have a Workspace account. This is, according to the tech support rep, hosted separately from you linux account.

2) goDaddy is moving toward cPanel email accounts. Hurray! Time table? "...in the next 2 to 3 years!"

3) I moved our accounts from Workspace to cPanel accounts while I was on the phone with the rep. Really easy to do.

4) After you change your email accounts (including editing your MX records) to a cPanel email (vs. a "workspace" email) the appropriate settings for a web-form email using PHPMailer are:

SMTP_SERVER: localhost   //(and I mean literally: "localhost"- in place of smtp.secureserver.net and relay-hosting.secureserver.net, etc.)

... and everything else (as above) the same...

The webform I built with PHPMailer worked perfectly after this change!

Use your cPaneL email account login (username) and password in the PHPMailer setup and your web emails will work seamlessly!

An added bonus is that webmail (does anybody use this anymore?) can be accessed at [yourdoman]\webmail. No more cryptic url's to remember! And the accounts cand be IMAP or POP!

Admittedly, this means you must use goDaddy's cPanel email accounts, but getting the webform to work flawslessly with PHPMailer was the real reward!

Nate Byram

I'm on GoDaddy on a Linux like @surfbird0713. On my 32nd attempt, the following worked for me as well:

$mail2->Host = localhost;
//$mail2->SMTPAuth = false;
//$mail2->Username = 'xxxx@xxxxxx.com';
//$mail2->Password = '*******';

//$mail2->SMTPSecure = 'tls';

//$mail2->Port = 465;

I was previously trying with the username, login, port, etc. When I commented out all those, and just went with localhost it worked.

Sagar Anand

After a lot of frustration, this also worked for me.

include("includes/class.phpmailer.php");

date_default_timezone_set('UTC');

define('SMTP_HOST','relay-hosting.secureserver.net');
define('SMTP_PORT',25);**
define('SMTP_USERNAME','me@aravindnc.com');
define('SMTP_PASSWORD','me123');
define('SMTP_AUTH',false);

$email = 'aravind_n_c@yahoo.co.in';
$firstName = 'Aravind';

$mail = new PHPMailerR();
$mail->IsSMTP();
$mail->SMTPDebug = 1;                 
$mail->SMTPAuth = SMTP_AUTH;                
$mail->Host = SMTP_HOST;
$mail->Port = 25;
$mail->Username = SMTP_USERNAME;
$mail->Password = SMTP_PASSWORD;
$mail->SetFrom(SMTP_USERNAME,'AravindNC.IN');
$mail->AddReplyTo(SMTP_USERNAME,"AravindNC.IN");
$mail->Subject = "Welcome to AravindNC.IN";
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!";
$mail->MsgHTML('This is a test.');
$mail->AddAddress($email, 'Aravind NC');
$mail->Send();

?>
KLL

I have been experiencing this problem for many weeks. Finally, got it resolved. First, I'd to state the causes of problem (as I experienced it). GoDaddy allows only port 25, 465, 80 to get out. So, you cannot reach any SMTP server that are not using any of those 3 ports. But if you are using SMTP from GMAIL per example, or any other replay server (especially from Bell Canada, on port 465), then any relay request from GoDaddy will be blocked - hence you will see the Connection Refused (111). Yes, they are competitors in hosting services... so draw your own conclusion on when this problem will get solved between them. Worse, when you send an email from relay-hosting.secureserver.net provided by GoDaddy, you are facing a major inconvenience of long queuing that could take a couple of minutes to get the email out. Worse yet, people with Bell Canada (or Bell affiliates') email account will not see email from this relay server - the email does not even get to your spam box! As the email is completely blocked by Bell (their excuse = too much spams from GoDaddy).

So, recently I did this and it worked fine for me. If you have a hosting service with GoDaddy, then register an email account. Then using that email account, example mywebmail@mydomain.com, do this with PHPMail:

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtpout.secureserver.net";
$mail->Username = "mywebmail@mydomain.com"; /*Substitute with your real email*/
$mail->Password = "myverylongpassword"; /*Substitute with your real password*/
$mail->SMTPAuth = true;
$mail->Port = 80;

Then do your regular PHPMailing things... This works great for me. I hope it does the same for you.

I have same problem But I tried this

$mail->SMTPAuth = false;

and HOSTNAME: relay-hosting.secureserver.net

And Bingoooooo its working

please just do once this setting in SMTP

Adam Gerard

Using some of the advice above I was able to get a turnkey bootstrap site up and running with email on shared hosting on GoDaddy.

I made an AJAX call to email.php which contained:

 <?php

require 'PHPMailerAutoload.php';

if ($_POST) {
    $name    = $_POST['contactName'];
    $email   = $_POST['contactEmail'];
    $message = $_POST['contactMessage'];

    /* Don't touch */
    $mail = new PHPMailer();
    $mail->isSMTP();
    $mail->Host        = "relay-hosting.secureserver.net";
    $mail->SMTPAuth    = false;
    $mail->setFrom($email, $name);
    /* end */

    /* Configure the address the email will be sent to */
    $mail->addAddress('administrator@stackchampion.com', 'Adam InTae Gerard');
    $mail->Subject = 'Re: StackChampion Inquest';
    /* This is forwarded through a GoDaddy forwarding account */

    $mail->Body    = $message;

    if (!$mail->send()) {
        echo "Mailer Error: " . $mail->ErrorInfo;
    } else {
        echo "Message sent!";
    }
}
?> 

I put together a working demo on GitHub available here:

https://github.com/Thoughtscript/wp_postlib_godaddy_php_emailer

That's free to use and opensource but the relevant code is listed above. There are apparently a lot of problems with their SMTP servers - I've found that you can bypass that by using their offered relay servers which don't require authentication though they can still be associated with one of your registered emails acounts.

Hope that helps somebody! Cheers!

Abdulrehman

these will be your SMTP settings for GoDaddy:

require("PHPMailer-master/PHPMailerAutoload.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug  = 2;
$mail->From = "yourmail@ddd.com";
$mail->FromName = "name";
$mail->Host = "localhost"; 
$mail->SMTPAuth = false; 
$mail->SMTPSecure = false;
$mail->SMTPAutoTLS = false;

Well, I got this resolved, but not in a good way. After exhausting everything I could think of, I just threw my hands up and told GoDaddy to switch me back to the Windows server. As soon as they did that, the problem disappeared. Since I don't really care what type of server I'm on, this result is satisfactory, but hardly satisfying.

So, my advice for any GoDaddy customers who believe that they have PHPMailer set up correctly but can't make it work is to find out if you are on a Linux server. It looks to me like GoDaddy has their Linux servers set up to block this type of mail transaction. I can't say that definitively, since I only believe that because I failed at making it work. But I can clearly say that my PHPMailer setup was accurate, at least with Windows.

Maybe this will help save someone some time and frustration. If anyone has a better idea, please post.

if on your hosting have a own email server, your email server using the following ports 25,465,587. Settings for GoDaddy:

$mail->isSMTP(); 
$mail->Host = localhost; 
$mail->SMTPAuth = true;
$mail->Username = 'example@gmail.com';
$mail->Password = 'password';

//$mail->SMTPSecure = 'tls'; 
//$mail->Port = 587;

On the other servers need to create a mailbox with your domain:

$mail->isSMTP(); 
$mail->Host = localhost; 
$mail->SMTPAuth = true;
$mail->Username = 'example@yourdomain.com';
$mail->Password = 'password';

//$mail->SMTPSecure = 'tls'; 
//$mail->Port = 587;

Update for Jan 2015: I just had to solve this exact problem. You need to have GoDaddy linux hosting with cPanel email accounts:

  1. In the email accounts section, next to each email address in a dropdown, click the option to 'configure email client'.
  2. On the next page, scroll down to 'Manual Settings'. Here you'll see that GoDaddy now creates a bespoke incoming/outgoing servers for each email address. So use the outgoing server, SSL, auth:true, port:465, email/password.

Hope that helps.

Ronen

Change this:

$mail->Host = 'smtpout.secureserver.net:465';
$mail->SMTPSecure = "ssl";

To this:

$mail->Host = 'smtpout.secureserver.net:25';

and it worked for me!

Chicken Man

According to Godaddy, replace

$mail->Host = "smtpout.secureserver.net"; //also tried "relay-hosting.secureserver.net"

with

$mail->Host = "smtp.secureserver.net"; //also tried "relay-hosting.secureserver.net"

It worked for me.

After wrestling with this issue for a couple days and getting it to work I thought I would update this thread for 2017. Hopefully I can save someone a few wasted hours. I am hosted on Godaddy with cpanel. It was the SMTPAutoTLS setting I finally ran across and tried that was the missing piece. The error I was receiving is as follows:

PHP Warning: stream_socket_enable_crypto(): Peer certificate CN=*.prod.iad2.secureserver.net' did not match expected CN=localhost' in /home/username/public_html/classes/PHPMailer/class.smtp.php on line 369

Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

The following are the PHPMailer settings that worked for me.

$mail->isSMTP();
$mail->Host = 'localhost';
$mail->Port = 25;
$mail->SMTPSecure = false;
$mail->SMTPAutoTLS = false;
$mail->SMTPAuth = false;  

If using cPanel and WPForms in WordPress

What helped me is to create email address from cPanel and use its settings from Manual Settings section either with SSL or Non SSL

GoDaddy/Linux (cPanel)/PHPMailer

require_once("../include/PHPMailer-master/PHPMailerAutoload.php");

$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host         = "a2plcpnXXXXX.prod.iad2.secureserver.net";
$mail->SMTPDebug    = 2; 
$mail->SMTPAuth     = true;
$mail->Username     = "your username";
$mail->Password     = "your password";
$mail->SMTPSecure   = "tls";
$mail->Port         = 587;

Feel free to use whatever email/name you want for the $mail->From and $mail->FromName values. Hope this helps.

Just had this problem, contacted GoDaddy and they switched my MX over from Local to Remote and it solved the problem instantly! Just a heads up for anyone that is still experiencing this issue.

Godaddy is s nightmare.

If you are using an older work space email account and are unfamiliar with cpanel try this

require '/home/content/94/8357694/html/SHTECH/server/PHPMailer.php';
use PHPMailer\PHPMailer\PHPMailer;

function sendmail($to,$subject,$message,$name)
{

define('SMTP_HOST','relay-hosting.secureserver.net');
define('SMTP_PORT',25);
define('SMTP_AUTH',true);



              $mail             = new PHPMailer();

              $mail->IsSMTP();
              $mail -> SMTPDebug = 1;
              $mail->Host       = "smtpout.secureserver.net";
              $mail->SMTPAuth   = SMTP_AUTH;
              $mail->Port       = 80;
              $mail->Username   = "info@signalhilltechnology.com";
              $mail->Password   = "allen1";
              //$mail->SMTPSecure = 'ssl';
              $mail->SetFrom('info@signalhilltechnology.com', 'Cagney');
              $mail->AddReplyTo("info@signalhilltechnology.com","Cagney");
              $mail->Subject    = $subject;
              $body             = $message;
              $mail->AltBody    = "To view the message, please use an HTML compatible email viewer!";
              $mail->MsgHTML($body);
              $address = $to;
              $mail->AddAddress($address, $name);
              if(!$mail->Send()) {
                  return 0;
              } else {
                    return 1;
              }




}

GoDaddy Server SMTP Connection Refused.

Bigrock $mail->Port =587;// SMTP ser*vers

GoDaddy $mail->Port =25;// SMTP ser*vers

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!