By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,156 Members | 1,069 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,156 IT Pros & Developers. It's quick & easy.

Not being able to send mails through PHP using SMTP

P: n/a
Hello everyone,

I am using Apache 1.3.33 as the web server and PHP version 4.3.10. My
machine is using Windows XP 2002 professional edition which comes with
a Windows firewall. I am using McAfee free edition for anti-virus.

I use an ISP provider from my country and according to them I do not
need to perform authentication while sending mails through their SMTP
address. Thus I am using external SMTP server. I don't have IIS
installed in my computer nor do I have an SMTP server running.

I tried the PHP's mail(...) function but the function fails. It reports
that the connection to the SMTP host cannot be made. I set the SMTP
host using the ini_set function as well as editing the php.ini and
specifying the host (then again restarting Apache server). This doesn't
help. The mail function still fails with the same error. Disabled the
Windows firewall and McAfee anti-virus. But the same problem persists.

Thinking that I may have somehow messed up the header information or
not properly using CRLF, I used the phpmailer class. The classes have
been installed properly.

The phpmailer's send(..) function also fails with the error:

Debug Warning: C:\Program Files\Pcounter Web
Report\www\libraries\class.smtp.php line 177 - fsockopen(): unable to
connect to smtp.wlink.com.np:25

I am using the default port that is 25. Verified that my ISP provider
also uses port 25 for SMTP.

I debugged the phpmailer class and the fsockopen(..) function fails as
you can also see from the above error message.

fsockopen function returns false.

The $errno = 10053 and the $errstr = "An established connection was
aborted by a software in your host machine"

Again disabling the firewall and McAfee the same error is reported.

Could the reason for the problem be that I am using quite old PHP and
Apache version. I searched the entire php.net sites but the exact
problem is not faced by anyone. I guess no one uses Apache 1.3.33
anymore. Could the incompatibility between Apache and PHP causing this?

Any help would be appreciated very much

Jan 3 '07 #1
Share this Question
Share on Google+
7 Replies


P: n/a

oo********@hotmail.com wrote:
Hello everyone,

I am using Apache 1.3.33 as the web server and PHP version 4.3.10. My
machine is using Windows XP 2002 professional edition which comes with
a Windows firewall. I am using McAfee free edition for anti-virus.

I use an ISP provider from my country and according to them I do not
need to perform authentication while sending mails through their SMTP
address. Thus I am using external SMTP server. I don't have IIS
installed in my computer nor do I have an SMTP server running.

I tried the PHP's mail(...) function but the function fails. It reports
that the connection to the SMTP host cannot be made. I set the SMTP
host using the ini_set function as well as editing the php.ini and
specifying the host (then again restarting Apache server). This doesn't
help. The mail function still fails with the same error. Disabled the
Windows firewall and McAfee anti-virus. But the same problem persists.

Thinking that I may have somehow messed up the header information or
not properly using CRLF, I used the phpmailer class. The classes have
been installed properly.

The phpmailer's send(..) function also fails with the error:

Debug Warning: C:\Program Files\Pcounter Web
Report\www\libraries\class.smtp.php line 177 - fsockopen(): unable to
connect to smtp.wlink.com.np:25

I am using the default port that is 25. Verified that my ISP provider
also uses port 25 for SMTP.

I debugged the phpmailer class and the fsockopen(..) function fails as
you can also see from the above error message.

fsockopen function returns false.

The $errno = 10053 and the $errstr = "An established connection was
aborted by a software in your host machine"

Again disabling the firewall and McAfee the same error is reported.

Could the reason for the problem be that I am using quite old PHP and
Apache version. I searched the entire php.net sites but the exact
problem is not faced by anyone. I guess no one uses Apache 1.3.33
anymore. Could the incompatibility between Apache and PHP causing this?

Any help would be appreciated very much
The Apache and PHP version shouldn't matter. I've written a short
tutorial on congifuring mail for PHP here:
http://www.neilang.com/2006/12/php-sending-html-emails/

To test the connection to the SMTP server from your computer you could
try to telnet straight to the SMTP server from command prompt.
Otherwise I recommend installing the mail server that comes with XP Pro
and setting that as your mail server. I've used this before and it
works great with PHP4 after some configuration.

Jan 4 '07 #2

P: n/a
oo********@hotmail.com wrote:
Hello everyone,

I am using Apache 1.3.33 as the web server and PHP version 4.3.10. My
machine is using Windows XP 2002 professional edition which comes with
a Windows firewall. I am using McAfee free edition for anti-virus.

I use an ISP provider from my country and according to them I do not
need to perform authentication while sending mails through their SMTP
address. Thus I am using external SMTP server. I don't have IIS
installed in my computer nor do I have an SMTP server running.

I tried the PHP's mail(...) function but the function fails. It reports
that the connection to the SMTP host cannot be made. I set the SMTP
host using the ini_set function as well as editing the php.ini and
specifying the host (then again restarting Apache server). This doesn't
help. The mail function still fails with the same error. Disabled the
Windows firewall and McAfee anti-virus. But the same problem persists.

Thinking that I may have somehow messed up the header information or
not properly using CRLF, I used the phpmailer class. The classes have
been installed properly.

The phpmailer's send(..) function also fails with the error:

Debug Warning: C:\Program Files\Pcounter Web
Report\www\libraries\class.smtp.php line 177 - fsockopen(): unable to
connect to smtp.wlink.com.np:25

I am using the default port that is 25. Verified that my ISP provider
also uses port 25 for SMTP.

I debugged the phpmailer class and the fsockopen(..) function fails as
you can also see from the above error message.

fsockopen function returns false.

The $errno = 10053 and the $errstr = "An established connection was
aborted by a software in your host machine"

Again disabling the firewall and McAfee the same error is reported.

Could the reason for the problem be that I am using quite old PHP and
Apache version. I searched the entire php.net sites but the exact
problem is not faced by anyone. I guess no one uses Apache 1.3.33
anymore. Could the incompatibility between Apache and PHP causing this?

Any help would be appreciated very much
I would be VERY surprised if they don't require any authentication.
This would leave them wide open to spammers, and within minutes of being
discovered they would be on every spam blacklist in the world.

Rather, I suspect the person who indicated they don't require any
authentication doesn't know what they're talking about.

There are a couple of commonly used ways to authenticate for outbound
mail - one is to require a userid/password to sign on to send email.
Another is to require you to check your POP3/IMAP mailbox first.
Checking that could give your IP address (i.e.) 30 minutes of outbound
mail without authentication. Then you would have to check your incoming
mailbox again.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Jan 4 '07 #3

P: n/a
Hi,

Thank you for your response.

I looked into the site you have provided and I assure you that my code
to use the mail(..) is 100% correct. I have also consulted other sites
for the correct use of the mail(..) functions. I have set the necessay
PHP variables for this.

As you had suggested: I used the "telnet" program and when I try to
connect to my ISP's SMTP server through the telnet it fails. I
contacted my ISP and they also don't know the anwser on telnet's
failure. I asked them about authentication requirement and they said no
authentication is required. One thing is strange in that if I sent
mails through MS-OUTLOOK all mails are sent correctly and received at
the other end.

It seems I am lost here...

Noodle wrote:
oo********@hotmail.com wrote:
Hello everyone,

I am using Apache 1.3.33 as the web server and PHP version 4.3.10. My
machine is using Windows XP 2002 professional edition which comes with
a Windows firewall. I am using McAfee free edition for anti-virus.

I use an ISP provider from my country and according to them I do not
need to perform authentication while sending mails through their SMTP
address. Thus I am using external SMTP server. I don't have IIS
installed in my computer nor do I have an SMTP server running.

I tried the PHP's mail(...) function but the function fails. It reports
that the connection to the SMTP host cannot be made. I set the SMTP
host using the ini_set function as well as editing the php.ini and
specifying the host (then again restarting Apache server). This doesn't
help. The mail function still fails with the same error. Disabled the
Windows firewall and McAfee anti-virus. But the same problem persists.

Thinking that I may have somehow messed up the header information or
not properly using CRLF, I used the phpmailer class. The classes have
been installed properly.

The phpmailer's send(..) function also fails with the error:

Debug Warning: C:\Program Files\Pcounter Web
Report\www\libraries\class.smtp.php line 177 - fsockopen(): unable to
connect to smtp.wlink.com.np:25

I am using the default port that is 25. Verified that my ISP provider
also uses port 25 for SMTP.

I debugged the phpmailer class and the fsockopen(..) function fails as
you can also see from the above error message.

fsockopen function returns false.

The $errno = 10053 and the $errstr = "An established connection was
aborted by a software in your host machine"

Again disabling the firewall and McAfee the same error is reported.

Could the reason for the problem be that I am using quite old PHP and
Apache version. I searched the entire php.net sites but the exact
problem is not faced by anyone. I guess no one uses Apache 1.3.33
anymore. Could the incompatibility between Apache and PHP causing this?

Any help would be appreciated very much

The Apache and PHP version shouldn't matter. I've written a short
tutorial on congifuring mail for PHP here:
http://www.neilang.com/2006/12/php-sending-html-emails/

To test the connection to the SMTP server from your computer you could
try to telnet straight to the SMTP server from command prompt.
Otherwise I recommend installing the mail server that comes with XP Pro
and setting that as your mail server. I've used this before and it
works great with PHP4 after some configuration.
Jan 4 '07 #4

P: n/a
Hi,

Further information:

I know a personal acquaintaince who works for the ISP.I talked to him
and he assures that no authentication is needed. He is also a PHP
programmer. Perhaps being inside the ISP's intranet he doesn't require
one.

When I try the telnet command "open" with the ISP's SMTP address and
the port 25, the function returns so abruptly (within a blink of an
eye) with a connection failure message. But when tried with different
port address (23) it takes some time for the failure message to come.
Maybe this means something.

I am using the email account from my ex-ISP. It requires username and
password. When I use MS-OUTLOOK I access the ex-ISP through the current
ISP. So in the MS-OUTLOOK the POP3 is that of my ex-ISP and the SMTP is
of the current ISP

Jerry Stuckle wrote:
oo********@hotmail.com wrote:
Hello everyone,

I am using Apache 1.3.33 as the web server and PHP version 4.3.10. My
machine is using Windows XP 2002 professional edition which comes with
a Windows firewall. I am using McAfee free edition for anti-virus.

I use an ISP provider from my country and according to them I do not
need to perform authentication while sending mails through their SMTP
address. Thus I am using external SMTP server. I don't have IIS
installed in my computer nor do I have an SMTP server running.

I tried the PHP's mail(...) function but the function fails. It reports
that the connection to the SMTP host cannot be made. I set the SMTP
host using the ini_set function as well as editing the php.ini and
specifying the host (then again restarting Apache server). This doesn't
help. The mail function still fails with the same error. Disabled the
Windows firewall and McAfee anti-virus. But the same problem persists.

Thinking that I may have somehow messed up the header information or
not properly using CRLF, I used the phpmailer class. The classes have
been installed properly.

The phpmailer's send(..) function also fails with the error:

Debug Warning: C:\Program Files\Pcounter Web
Report\www\libraries\class.smtp.php line 177 - fsockopen(): unable to
connect to smtp.wlink.com.np:25

I am using the default port that is 25. Verified that my ISP provider
also uses port 25 for SMTP.

I debugged the phpmailer class and the fsockopen(..) function fails as
you can also see from the above error message.

fsockopen function returns false.

The $errno = 10053 and the $errstr = "An established connection was
aborted by a software in your host machine"

Again disabling the firewall and McAfee the same error is reported.

Could the reason for the problem be that I am using quite old PHP and
Apache version. I searched the entire php.net sites but the exact
problem is not faced by anyone. I guess no one uses Apache 1.3.33
anymore. Could the incompatibility between Apache and PHP causing this?

Any help would be appreciated very much

I would be VERY surprised if they don't require any authentication.
This would leave them wide open to spammers, and within minutes of being
discovered they would be on every spam blacklist in the world.

Rather, I suspect the person who indicated they don't require any
authentication doesn't know what they're talking about.

There are a couple of commonly used ways to authenticate for outbound
mail - one is to require a userid/password to sign on to send email.
Another is to require you to check your POP3/IMAP mailbox first.
Checking that could give your IP address (i.e.) 30 minutes of outbound
mail without authentication. Then you would have to check your incoming
mailbox again.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Jan 4 '07 #5

P: n/a
oo********@hotmail.com wrote:
Jerry Stuckle wrote:
>>oo********@hotmail.com wrote:
>>>Hello everyone,

I am using Apache 1.3.33 as the web server and PHP version 4.3.10. My
machine is using Windows XP 2002 professional edition which comes with
a Windows firewall. I am using McAfee free edition for anti-virus.

I use an ISP provider from my country and according to them I do not
need to perform authentication while sending mails through their SMTP
address. Thus I am using external SMTP server. I don't have IIS
installed in my computer nor do I have an SMTP server running.

I tried the PHP's mail(...) function but the function fails. It reports
that the connection to the SMTP host cannot be made. I set the SMTP
host using the ini_set function as well as editing the php.ini and
specifying the host (then again restarting Apache server). This doesn't
help. The mail function still fails with the same error. Disabled the
Windows firewall and McAfee anti-virus. But the same problem persists.

Thinking that I may have somehow messed up the header information or
not properly using CRLF, I used the phpmailer class. The classes have
been installed properly.

The phpmailer's send(..) function also fails with the error:

Debug Warning: C:\Program Files\Pcounter Web
Report\www\libraries\class.smtp.php line 177 - fsockopen(): unable to
connect to smtp.wlink.com.np:25

I am using the default port that is 25. Verified that my ISP provider
also uses port 25 for SMTP.

I debugged the phpmailer class and the fsockopen(..) function fails as
you can also see from the above error message.

fsockopen function returns false.

The $errno = 10053 and the $errstr = "An established connection was
aborted by a software in your host machine"

Again disabling the firewall and McAfee the same error is reported.

Could the reason for the problem be that I am using quite old PHP and
Apache version. I searched the entire php.net sites but the exact
problem is not faced by anyone. I guess no one uses Apache 1.3.33
anymore. Could the incompatibility between Apache and PHP causing this?

Any help would be appreciated very much

I would be VERY surprised if they don't require any authentication.
This would leave them wide open to spammers, and within minutes of being
discovered they would be on every spam blacklist in the world.

Rather, I suspect the person who indicated they don't require any
authentication doesn't know what they're talking about.

There are a couple of commonly used ways to authenticate for outbound
mail - one is to require a userid/password to sign on to send email.
Another is to require you to check your POP3/IMAP mailbox first.
Checking that could give your IP address (i.e.) 30 minutes of outbound
mail without authentication. Then you would have to check your incoming
mailbox again.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================


Hi,

Further information:

I know a personal acquaintaince who works for the ISP.I talked to him
and he assures that no authentication is needed. He is also a PHP
programmer. Perhaps being inside the ISP's intranet he doesn't require
one.

When I try the telnet command "open" with the ISP's SMTP address and
the port 25, the function returns so abruptly (within a blink of an
eye) with a connection failure message. But when tried with different
port address (23) it takes some time for the failure message to come.
Maybe this means something.

I am using the email account from my ex-ISP. It requires username and
password. When I use MS-OUTLOOK I access the ex-ISP through the
current ISP. So in the MS-OUTLOOK the POP3 is that of my ex-ISP and
the SMTP is of the current ISP
(Top posting fixed)

Yep, it means the connection is being rejected by your ISP. I'm not
sure why it would do so before it got any data - but that looks like the
problem.

Check your SMTP parms in Outlook very carefully. Ensure that you're
accessing the correct server. Some ISP's have their mail servers on a
different system.

P.S. Please don't top post. Thanks.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Jan 4 '07 #6

P: n/a
>I know a personal acquaintaince who works for the ISP.I talked to him
>and he assures that no authentication is needed. He is also a PHP
programmer. Perhaps being inside the ISP's intranet he doesn't require
one.
SMTP servers for a domain (e.g. the one the MX record is pointed
at) typically accept mail from anywhere (except hosts on the SPAM
block list) if the destination is for the domain being served
(subject to later filtering for SPAM and viruses). They may also
allow IP addresses local to the ISP itself to send mail out to
anyone. Neither requires authentication (but roaming customers not
connecting via the ISP's own network have a problem) to avoid
horrible spam abuse. (except by their own customers). The approach
of "POP before SEND" also doesn't require authentication on sending
mail, but requires you to check your mailbox within some time (e.g.
an hour) before sending.
>When I try the telnet command "open" with the ISP's SMTP address and
the port 25, the function returns so abruptly (within a blink of an
eye) with a connection failure message. But when tried with different
port address (23) it takes some time for the failure message to come.
Maybe this means something.
When I try telnet to the given server address in the original post,
and port 25, it connects and gives a SMTP banner. I doubt it's
operating as an open relay, but I did not test that.
I tried the PHP's mail(...) function but the function fails. It reports
that the connection to the SMTP host cannot be made. I set the SMTP
host using the ini_set function as well as editing the php.ini and
specifying the host (then again restarting Apache server). This doesn't
help. The mail function still fails with the same error. Disabled the
Windows firewall and McAfee anti-virus. But the same problem persists.
I'd like to suggest firewall problems, either on your end or between
you and the SMTP server.
The phpmailer's send(..) function also fails with the error:

Debug Warning: C:\Program Files\Pcounter Web
Report\www\libraries\class.smtp.php line 177 - fsockopen(): unable to
connect to smtp.wlink.com.np:25

I am using the default port that is 25. Verified that my ISP provider
also uses port 25 for SMTP.
My experiments with telnet suggest that I can get a SMTP banner
using the above information, so the server is (at the moment) working.

Jan 5 '07 #7

P: n/a
Thank you all for your responses.

The problem is solved. The telnet succeeds as well as the mail
function. The problem was the McAfee antivirus. I am using the free
perpetual edition. Only disabling it was not enough. I completely
uninstalled it and restarted my computer. Now everything is good.
However now I am without an antivirus program.. lol...

As for the authentication scheme to avoid spamming, according to my ISP
it allows only 100 emails per hour by a user. If a user sends 100
emails within 5 minutes then he has to wait 1 hour more to again send
100 emails. Hope I am not doing any harm revealing my ISP's secret.:)

Jan 5 '07 #8

This discussion thread is closed

Replies have been disabled for this discussion.