如何使用Sendgrid和前端Javascript发送电子邮件而无需服务器?

23

最近我在思考如何使用仅前端语言(例如JavaScript)通过如Sendgrid或Mandrill等电子邮件服务应用程序发送电子邮件。

Sendgrid和Mandrill有Curl API,因此基本上我只需通过AJAX post请求将邮件发送到他们的API即可发送邮件,但问题是,我必须将我的API秘钥放入JS文件中,这意味着它将是公开的...而它应该是保密的。

在这两个应用程序中,文档中没有关于前端使用的内容,除非您拥有自己的服务器使用API,但我目前正在进行基于前端的项目,没有服务器编程,服务器只呈现资产而已。

你们知道实现这一点的任何方法或应用程序吗?谢谢


据我所知,这是不可能的,除非显示一个秘密密钥。 - Robin
嗯,但是使用秘密密钥会带来一些安全问题,因为任何人都可以使用我的密钥,不是吗?@RobinR - darkylmnx
这就是我说的。这是可能的吗?但是如果你不使用PHP或其他不可读的客户端文件来完成它,那么这将是一个安全问题。 - Robin
3
我发现了这个网址:http://www.emailjs.com,看起来他们找到了一种方法,我猜测@RobinR。 - darkylmnx
@Mousey,mailto不是自动的,也不能发送HTML电子邮件,但感谢ifttt,我会查看一下的。 - darkylmnx
显示剩余2条评论
6个回答

17

默认情况下,用户提交表单后会显示Formspree的“感谢”页面。如果要定制表单提交页面,则需要付费,并且免费计划每月限制50封电子邮件。 - Patrick
是的,这项服务的免费层似乎非常有限。这是一个完全基于后端的解决方案,但您需要支付某人来为您处理这个后端。 - M3RS

5

那些都是非常好的替代解决方案,谢谢!但对于其中的两个,我将不得不远程创建表单并嵌入它(这不是最初的想法),而对于SendGrid和PHP,则需要编写一些后端代码(这也不是想法,但对于仅前端开发人员来说,这是一个不太好的替代选择)。关键问题仍然存在,它是公开的,因此容易被盗取......但我猜这就像FB或常见的API一样,你可以仅限于从特定主机访问密钥@mousey。 - darkylmnx
@darkylmnx,最后一个选项涉及从头开始编写自己的代码,但需要掩盖电子邮件地址并可能使用加密和/或SSL。第三方服务选项允许您添加额外的字段并自定义表单,您可以根据他们的建议构建自己的表单。OAuth也是API密钥的替代方案,这就是dropbox forms/jot box使用的方式。 - Mousey
嗨@darkylmnx,你找到解决这个问题的方法了吗? - DaniP

2

1
你可以使用AWS Lambda函数编写JavaScript的无服务器架构。

那意味着我需要编写代码,但我不想这样做,我正在寻找仅进行前端开发的工具。显然,Mailchimp有一个API可以实现这一点,但仍需要一些后端代码,这很麻烦。 - darkylmnx

0

如果您想保持密钥的安全性,可以使用类似 Aerobatic 的 HTTP 代理 来指定密钥并通过服务器环境进行代理。


0
另一种选择是让每个用户使用自己的发件人邮件服务器,通过使用mailto:链接,您可以指定标题信息以及一个名为“body”的准标题,将您想要的内容放入消息正文中。

1
我不认为这是最优解决方案。用户会向自己发送邮件,这不是专业的做法。 - Daman Arora

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接