#38091 [Asn->Csd]: Mail() does not use FQDN when sending SMTP helo

[email protected]
Newsgroups php.bugs
Message-ID <[email protected]>
 ID:               38091
 Updated by:       [email protected]
 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] [email protected]

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] [email protected]

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] [email protected]

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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.