javascript - 如何从外部 API 获取输入并通过电子邮件发送
问题描述
在课堂上,我们遇到了制作被视为“恶意”或不可信的网站的挑战。我们在单位的安全部门
我正在制作一个网站,当一个人进入它时,一个外部 API ( http://www.geoplugin.net/javascript.gp ) 会捕获州、城市、邮政编码等基本信息。我想发送收到的数据当一个人通过电子邮件地址进入网站时。但是,我不知道如何做到这一点。
我查找了 youtube 视频,但没有发现任何可以让我接近这个主题的地方
以下是 API 中的一些占位符。例如,我想从 geoplugin_city() 获取结果并将其发送到电子邮件中。
<script language="Javascript">
document.getElementById("demo").innerHTML = geoplugin_city();
console.log("Welcome to our visitors from "+geoplugin_city()+", "+geoplugin_countryName());
console.log("Testing"+geoplugin_region());```
解决方案
您想要的是将数据传递到您的服务器,然后使用电子邮件客户端库(例如Gmail或SendGrid)发送到您想要的位置。
您真的不想在您的客户端上执行此操作,因为为了发送任何电子邮件,您需要进行身份验证......除非有一个 API 可以将消息通过电子邮件发送到没有特定用户帐户的电子邮件。但是您将需要一个 API 密钥,您不希望将其硬编码到您的客户端代码中。
所以:
- 通过客户端 javascript 脚本收集您的数据。
- 将您的数据发送到您的服务器。
- 在您的服务器上使用客户端库(经过身份验证,至少使用 API 密钥,但取决于您选择的电子邮件提供商)将您的数据发送到您指定的电子邮件。
需要考虑的是批量转储数据。您可以登录到一个文件并定期读取该文件并将其转储到电子邮件中,而不是在用户每次访问您的站点时发送。这可能会很快消耗您的 API 配额(通常有配额,尤其是对于免费帐户)。这段时间将是您需要评估自己的时间。
如果您的初始上限被击中或被关闭,您还可以与该提供商设置多封电子邮件。这似乎很明显,但你会想在这里使用一次性电子邮件。
推荐阅读
- java - Java 迭代器如何检测集合被修改为抛出 ConcurrentModificationException?
- android - 警报对话框中的可滚动布局,底部有一个按钮(使用约束布局)
- java - 注释内类的 SonarQube 自定义 Java 规则
- firebase - Flutter:Firebase 当前用户抛出错误“方法在 null 上调用”
- c# - Razor 页面 @functions 中的异步
- azure - Azure DevOps 发布管道:从变量组中检索 Key Vault Secret 的版本号
- python - 由于“mayavi 构建轮子失败”,无法使用 pip3 install 安装 mayavi/vtk,但在 virtualenv 上安装工作
- c++ - 可以在编译时隐式引用类名吗?
- express - axios 使用 vue 和 multer 多次上传
- python - 如何在 Python 中将 if-else 语句转换为线性规划约束