Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP通过具有internet连接的代理服务器发送没有internet连接的电子邮件_Php_Email_Phpmailer_Proxy Server - Fatal编程技术网

PHP通过具有internet连接的代理服务器发送没有internet连接的电子邮件

PHP通过具有internet连接的代理服务器发送没有internet连接的电子邮件,php,email,phpmailer,proxy-server,Php,Email,Phpmailer,Proxy Server,我有一个PHP应用程序,它在没有internet的情况下运行。我想使用这个应用程序通过具有活动internet连接的本地代理服务器发送电子邮件。这是一个非常广泛的问题,比这里更适合于服务器故障。SMTP的存储转发体系结构意味着代理电子邮件并不特别容易,在高可用性情况下,它主要用于在入站服务器集群之间进行负载平衡,而不是用于可靠性大大降低的出站服务器 通常的做法是使用中继而不是代理。您发送到中继,然后中继将转发到internet。在代理服务器上安装邮件服务器,并将其配置为本地服务器邮件服务器的中继

我有一个PHP应用程序,它在没有internet的情况下运行。我想使用这个应用程序通过具有活动internet连接的本地代理服务器发送电子邮件。

这是一个非常广泛的问题,比这里更适合于服务器故障。SMTP的存储转发体系结构意味着代理电子邮件并不特别容易,在高可用性情况下,它主要用于在入站服务器集群之间进行负载平衡,而不是用于可靠性大大降低的出站服务器

通常的做法是使用中继而不是代理。您发送到中继,然后中继将转发到internet。在代理服务器上安装邮件服务器,并将其配置为本地服务器邮件服务器的中继。有很多关于如何做到这一点的指南,例如。几乎所有这类指南都假设您是通过gmail等需要身份验证的外部服务发送的,因此您会看到很多关于sasl和线路的引用,但是,由于它位于您的本地网络上,您可以将其IP改为白名单,这样您就可以在无需身份验证的情况下进行中继。在postfix中,这是根据配置的

完成此操作后,请使用命令行邮件客户端从服务器向自己发送消息,以进行测试:

echo "test" | mail -s "Relay test" -a "From: you@example.com" recipient@example.com
您可以通过读取每个邮件的日志文件来跟踪该邮件从本地服务器、通过中继以及到您自己的邮件服务器的传递

一旦知道基础架构正在工作,您可以通过两种方式从PHPMailer使用它:直接与中继服务器对话:

$mail->isSMTP();
$mail->Host = '10.0.0.2'; //Your relay's internal IP
$mail->SMTPAuth = false; //Don't need authentication if whitelisted
//Prevent PHPMailer trying to use encryption; it won't work with a literal IP
$mail->SMTPAutoTLS = false;
$mail->SMTPSecure = false;
或者使用服务器的本地邮件服务器为您进行中继:

$mail->isSMTP();

(默认属性将起作用,所以您需要做的就是启用SMTP)。

这是一个非常广泛的问题,比这里更适用于服务器故障。SMTP的存储转发体系结构意味着代理电子邮件并不特别容易,在高可用性情况下,它主要用于在入站服务器集群之间进行负载平衡,而不是用于可靠性大大降低的出站服务器

通常的做法是使用中继而不是代理。您发送到中继,然后中继将转发到internet。在代理服务器上安装邮件服务器,并将其配置为本地服务器邮件服务器的中继。有很多关于如何做到这一点的指南,例如。几乎所有这类指南都假设您是通过gmail等需要身份验证的外部服务发送的,因此您会看到很多关于sasl和线路的引用,但是,由于它位于您的本地网络上,您可以将其IP改为白名单,这样您就可以在无需身份验证的情况下进行中继。在postfix中,这是根据配置的

完成此操作后,请使用命令行邮件客户端从服务器向自己发送消息,以进行测试:

echo "test" | mail -s "Relay test" -a "From: you@example.com" recipient@example.com
您可以通过读取每个邮件的日志文件来跟踪该邮件从本地服务器、通过中继以及到您自己的邮件服务器的传递

一旦知道基础架构正在工作,您可以通过两种方式从PHPMailer使用它:直接与中继服务器对话:

$mail->isSMTP();
$mail->Host = '10.0.0.2'; //Your relay's internal IP
$mail->SMTPAuth = false; //Don't need authentication if whitelisted
//Prevent PHPMailer trying to use encryption; it won't work with a literal IP
$mail->SMTPAutoTLS = false;
$mail->SMTPSecure = false;
或者使用服务器的本地邮件服务器为您进行中继:

$mail->isSMTP();

(默认属性将起作用,因此您只需启用SMTP即可)。

在系统级别,这取决于您的网络设置-代理可以用作任何更广泛网络流量的默认网关。因此,如果您可以
ping
电子邮件服务器-您可以只引用电子邮件服务器,网络将选择适当的根目录访问它。在系统级别上,它取决于您的网络设置-代理可以用作任何更广泛网络流量的默认网关。因此,如果您可以
ping
e-mail服务器-您可以只引用e-mail服务器,网络将选择适当的根目录访问它。