我正在使用 PHPMailer,它使用fsockopen
访问 SMTP 服务器。
但该机器有两个具有不同反向 DNS 记录的 IP。所以在电子邮件标题中我得到以下内容:
Received: from one-server.tld (HELO another-server.tld) ...
我需要隐藏one-server.tld
有利于another-server.tld
。但我需要两个 IP 及其当前的 RDNS 设置。
我认为不可能使用fsockopen
。但它可能在curl
, fopen
and stream
功能。你需要的是流套接字客户端() http://php.net/stream_socket_client功能。
这里有一些实现它的方法。
-
使用可在 fopen 函数族和流函数族中使用的上下文参数。请参阅示例。
$opts = array(
'socket' => array(
'bindto' => '192.168.0.100:0',
),
);
// create the context...
$context = stream_context_create($opts);
$contents = fopen('http://www.example.com', 'r', false, $context);
Also 流套接字客户端 http://php.net/stream_socket_client
$fp = stream_socket_client("tcp://www.example.com:80", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $opts);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
fwrite($fp, "GET / HTTP/1.0\r\nHost: www.example.com\r\nAccept: */*\r\n\r\n");
while (!feof($fp)) {
echo fgets($fp, 1024);
}
fclose($fp);
}
Using 套接字绑定 http://php.net/socket_bind。 PHP.NET 有一个简单的例子here http://php.net/socket_bind.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)