我可以在没有网络服务器的情况下从javascript调用php脚本吗

Can I call a php script from javascript without it being on a web server?

本文关键字:javascript 调用 php 脚本 情况下 网络 服务器 网络服务 我可以      更新时间:2023-09-26

我需要一个简单的html+javascript页面,它必须在单击按钮时向预定义的用户列表发送多封电子邮件。

我需要html页面能够在没有安装web服务器的机器上本地运行。

如果它只是html页面本身,这就没有问题。但从我读到的所有内容来看,不可能直接从javascript/jquery发送电子邮件(例如,请参阅这里的StackOverflow帖子)。相反,我必须调用某种脚本来实际发送电子邮件。

我也看过这篇文章,但这篇文章似乎是关于运行一个自包含的脚本,而不是调用一个带参数的方法。我不确定这是否是我需要的。

我正在寻找一种发送电子邮件的方法,而不需要在机器上运行网络服务器。它不一定是PHP。有没有什么简单的方法可以在不需要网络服务器的情况下做到这一点?

要回答您的问题:不,如果没有服务器来运行服务器端代码(发送电子邮件必须是这样)-PHP、Python、Ruby或其他任何东西。

你可以考虑使用第三方服务,比如http://postageapp.com/-但要注意,这会涉及成本,你必须通过第三方服务发送这些电子邮件的内容。

您将需要某种形式的服务器端脚本来连接SMTP服务器。

因为JavaScript不支持跨域请求,所以也不能将$.post()发送到外部URL。。。

您可以在没有web服务器的情况下运行PHP,并将其用作命令行工具:

http://www.php.net/manual/en/features.commandline.usage.php

您的问题是,您需要通过某种方式从那里的JavaScript获取客户端/服务器信息的"状态"。您不能(轻松地)用JavaScript编写文件,但您可以发出标准的HTTP请求。为此,您需要一个web服务器。

你说这将在工作站上单独运行。您可能会发现更容易调整安全权限(请参阅此处),以便写入包含电子邮件参数的本地文件,然后在本地计算机上使用cron作业或计划任务来解析文件以启动电子邮件。

您需要触发服务器端脚本才能发送电子邮件。

如果你可以选择使用另一个网络服务器,你可以通过AJAX调用脚本,如下所示:

$.ajax({    
  url: "http://some.remote.server/send_email.php",
  data: {
    receipient: "some.guy@domain.tdl",
    subject: "Some Subject",
    body: "Hello Dude!"
  },
  success: function(){
     // ...
  }
});