Solved

PHPMailer Problem:  SMTP Error: Could not connect to SMTP host.

Posted on 2010-11-08
7
2,123 Views
Last Modified: 2012-05-10
I am trying to use PHPMAILER on our site which is hosted on godaddy.com and am getting the
"SMTP Error: Could not connect to SMTP host" error message.  I have been able to set up an account in my mail client using the same host, username & password, so I believe those settings are correct.  Any suggestions on how I should procede?

To test, I am using an example form I found:  
if(isset($_POST["Submit"]))
{
require("class.phpmailer.php");
 
$mail = new PHPMailer();
 
////////////////////////////////////////////////////////////////
// Customize the following 5 lines with your own information. //
////////////////////////////////////////////////////////////////
 
$toaddress = "myemail@comcast.net";  //Change this to the email address you will be receiving your notices.
$mailhost = "smtpout.secureserver.net";  //Change this to your actual Domain name.

$fromaddress = "myemail@ourdomain.org";  //Change this to the email address you will use to send and authenticate with.

$frompwd = "mypassword";  //Change this to the above email addresses password.

 
//////////////////////////////////////////
// DO NOT CHANGE ANYTHING PAST THIS LINE//
//////////////////////////////////////////
 
$fromname = $_POST["TName"];
$body = $_POST["TBody"] ;
$rplyto = $_POST["TEmail"];
$msgbody = $fromname . "<br>" . $rplyto . "<br>" . $body;
 
$mail->IsSMTP();
$mail->Host = $mailhost;
$mail->SMTPAuth = true;
$mail->Username = $fromaddress;
$mail->Password = $frompwd;
 
$mail->From = $fromaddress;
$mail->FromName = $fromname;
$mail->AddReplyTo($rplyto);
$mail->AddAddress($toaddress);
$mail->IsHTML(true);
$mail->Subject = $subject;
$mail->Body = $msgbody;
 
if(!$mail->Send())
{
   echo "Message could not be sent. <p>";
   echo "Mailer Error: " . $mail->ErrorInfo;
   exit;
}
 
echo "Thank you, your message has been sent!";
}
 
?>
 
<html><body>
<form name="SendEmail01" method="post">
<table border=0>
<tr>
        <td>Name:</td>
        <td><input type="text" name="TName" size="30"></td>
</tr>
<tr>
        <td>Email:</td>
        <td><input type="text" name="TEmail" size="30"></td>
</tr>
<tr>
        <td>Body:</td>
        <td><textarea rows="4" name="TBody" cols="30"></textarea></td>
</tr>
<tr>
        <td><input type="submit" name="Submit" value="Submit"></td>
</tr>
</table>
</form>
</body></html>
0
Comment
Question by:PegOC96
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
7 Comments
 
LVL 10

Expert Comment

by:TRW-Consulting
ID: 34090252
You need to set the port number:

  $mail->Port = 25;

It's usually port 25, but they might set it to something else to try to discourage abuse.  And they should tell you somewhere. It might be 587 or 465 if it's using SSL or TLS.
0
 

Author Comment

by:PegOC96
ID: 34092679
I had tried all of those  (I had seen that the port could be 25,80,3535, 587 or 465).   Using all of those, except 80, I still got the same "Mailer Error: SMTP Error: Could not connect to SMTP host." error message.  

When I use 80, I get:
Warning: fputs(): supplied argument is not a valid stream resource in D:\Hosting\4410081\html\dev\admin\mail\class.smtp.php on line 212
SMTP Error: Could not authenticate. Message could not be sent.
Mailer Error: SMTP Error: Could not authenticate.For 80,  I get  "
0
 
LVL 10

Assisted Solution

by:TRW-Consulting
TRW-Consulting earned 500 total points
ID: 34093002
It sounds like your SMTP port is being blocked by a firewall, either outbound by your host, or inbound by the server you're trying to connect with. Do you have 'root' or 'Administrator' access to your server?
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:PegOC96
ID: 34093267
I don't think so.  We are on a Windows/shared hosting platform. Only have access to our www directories.

Do I need (can I)to ask tech support to unblock ?
0
 
LVL 10

Accepted Solution

by:
TRW-Consulting earned 500 total points
ID: 34098465
Yeah, you need to ask your hosting provider about this. Ask them if they have an SMTP server available for their clients and what the address/port is.  And if it requires authentication you will need a username/password.  If they don't provide one then ask them if they are blocking outbound traffic for SMTP requests, and if so see if they can remove that block for you, in which case you will need permission to access some outside SMTP service. Looking at your code above leads me to believe you have SMTP service at Godaddy.com, and if that's so then you should be able to get the port and username/password from them.
0
 

Author Comment

by:PegOC96
ID: 34115587
Thank you for your help.  I did contact tech support and they do have a block. But they gave me the name of the relay server to use (which does not use authentication)  and I have finally gotten a test file to work.
0
 
LVL 10

Expert Comment

by:TRW-Consulting
ID: 34115820
Good deal.  Glad you got it to work.
0

Featured Post

Raise the IQ of Your IT Alerts

From IT major incidents to manufacturing line slowdowns, every business process generates insights that need to reach the people required to take action. You need a platform that integrates with your business tools to create fully enabled DevOps toolchains.

You need xMatters.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Does your audience prefer people in photos or no people? How can you best highlight what you’re selling? What are your competitors doing, and what can you do that is different and unique from them?  Continue reading to learn how to make your images …
Dramatic changes are revolutionizing how we build and use technology. Every company is automating, digitizing, and modernizing operations. We need a better, more connected way to work together as teams so we can harness the insights from our system…
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

690 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question