#38091 [Asn->Csd]: Mail() does not use FQDN when sending SMTP helo
| From: | kalle@php.net | Date: | Tue, 30 Jun 2009 11:40:53 +0000 |
| Subject: | #38091 [Asn->Csd]: Mail() does not use FQDN when sending SMTP helo | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-138982@lists.php.net to get a copy of this message | ||
ID: 38091
Updated by: kalle@php.net
Reported By: danb1974 at gmail dot com
-Status: Assigned
+Status: Closed
Bug Type: Mail related
Operating System: Windows
PHP Version: *
Assigned To: kalle
New Comment:
This bug has been fixed in CVS.
Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
Thank you for the report, and for helping us make PHP better.
Previous Comments:
------------------------------------------------------------------------
[2009-06-27 11:31:55] kalle@php.net
Patch available at:
http://php.tuxxedo.net/patches/bugs/38091.patch
------------------------------------------------------------------------
[2009-06-22 13:52:00] rick at longbowgames dot com
This isn't really a bug in Windows, since the official documentation
for Winsock[1] clearly states that the name returned by gethostname "can
be a simple host name, or it can be a fully qualified domain name."
Like many parts of Winsock, this is slightly different from the typical
behaviour of the POSIX function of the same name, which usually returns
a FQDN.
Actually, while the name returned by gethostname() is *usually* a FQDN
on a POSIX machine, I don't actually think it's guaranteed there,
either.
For a C solution, the code given by danb1974 should work. An easy way
to do it in pure PHP is, instead of just calling gethostname(), call
gethostbyaddr(gethostbyname(gethostname())).
Thanks,
-Rick-
[1] http://msdn.microsoft.com/en-us/library/ms738527(VS.85).aspx
------------------------------------------------------------------------
[2009-06-20 08:53:14] pajoye@php.net
Reopen, seems to be still valid.
------------------------------------------------------------------------
[2006-07-14 07:45:01] danb1974 at gmail dot com
It seems it's not enough to just gethostname. You have to do something
like this (this is not actual production code):
hostent *hent;
gethostname(hname, sizeof(hname));
hent = gethostbyname(hname);
strcpy(hostname, hent->h_name); // h_name is the official name
according to winsock api
------------------------------------------------------------------------
[2006-07-14 06:45:35] ronabop@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
The windows XP "feature" for domain name resolution
apparently gives out a bogus answer. This is an XP bug,
not a PHP bug. Additionally, "trashcan2.intranet" is not
a FQDN. See: <http://en.wikipedia.org/wiki/FQDN>.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/38091
--
Edit this bug report at http://bugs.php.net/?id=38091&edit=1