EmailJS vs SendGrid vs AWS SES:好的、坏的和丑陋的

EmailJS vs SendGrid vs AWS SES:好的、坏的和丑陋的

目录

  • 介绍
  • 发送网格
  • AWS SES
  • 电子邮件JS
  • 给我看代码!
  • 外传(?)

介绍

我最近推出了我的企业网站,并想分享我在使用电子邮件服务时遇到的(不)愉快的经历。

我在 2021 年秋季开始构建我的 Azure 静态 Web 应用程序,我首先构建了基本组件,然后在 2022 年春季短暂中断后将它们全部组合在一起(感谢 Elden Ring)。

发送网格

当我最初设置站点时,我使用 Twilio 的 SendGrid 服务在用户提交联系表单时向自己发送电子邮件。这很好用,我对他们的定价很满意,一旦我确认它按预期工作,我就不再弄乱联系表了。

快进了几个月,我终于准备好发布网站了,我去确认联系表工作正常,然后……鼓声……我提交时什么也没发生。

困惑,我去了我的 SendGrid 门户网站,发现该帐户已被停用。我检查了我的电子邮件,看看我是否错过了什么,但我没有收到任何警告或通知。我联系了他们的支持团队,他们很友好,但最终没有帮助。

我了解到,他们会关闭他们认为“休眠”的账户,当被要求提供具体细节时,他们无法给出答案。他们鼓励我建立一个新帐户,但以下是对我不起作用的原因:

  1. 在不知道构成“休眠”帐户的确切准则的情况下,我无法保证这种情况不会再次发生。
  2. 如果在我的帐户关闭之前没有收到任何警报,我就无法知道我的客户无法联系到我。

后者更令人震惊,服务提供商关闭客户账户而不让他们提前或事后知道是我的企业无法接受的风险。

有了这个启示,我放弃了 SendGrid 并将我的联系表移到了亚马逊的简单电子邮件服务中。

AWS SES

不幸的是,向 AWS SES 的过渡是短暂的。我在他们的沙盒环境中创建了一个帐户并在我的站点中实现了它,最后一步是申请提高速率限制(沙盒试用有几个限制)。

在将我的用例提交给 AWS 后,他们拒绝了我的账户,声称我使用 Amazon SES 可能会对“他们的服务产生负面影响”,无论这意味着什么。

我什至无法开始使用 AWS SES,就继续我的搜索。

电子邮件JS

既然我对两个最大的托管电子邮件服务感到失望,我决定看看更简单的选择。

我找到了 EmailJS,它看起来正是我所需要的:最小的麻烦、慷慨的定价层以及对开发人员友好的营销方式。

我确实遇到了这个服务的一些障碍,我将在下面讨论,但首先我想表达我对他们的平台的满意。文档很简单,我只需几分钟就可以启动并运行,它很容易与我的谷歌工作区电子邮件链接,最重要的是,它满足了我的需求!

下面是使用 EmailJS 需要注意的几件事。

  1. 他们说它是为了在客户端使用而不需要服务器。这非常简单,但它可能导致泄露帐户机密,因为如果您还不知道,客户端代码是公开的。
  2. 事实上,默认情况下它甚至在服务器中都不起作用。您必须在“允许非浏览器应用程序的 EmailJS API”安全性下启用帐户门户中的设置。
  3. Rest API 文档对 accessToken 的实现细节有些模糊

给我看代码!

事不宜迟,这就是实现 EmailJS 所需的内容。

客户端文档很简单,很容易在 https://www.emailjs.com/docs/sdk/send/

服务器端 Rest API 文档不是很清楚

 常量 axios = 要求('axios'); 常量模板参数 = {  
 示例:“价值”  
 }; 常量服务 ID = ** _过程_** .env["EMAILJS_SERVICE_ID"]  
 常量模板 ID = ** _过程_** .env["EMAILJS_TEMPLATE_ID"]  
 常量公钥 = ** _过程_** .env["EMAILJS_PUBLIC_KEY"]  
 常量私有密钥 = ** _过程_** .env["EMAILJS_PRIVATE_KEY"]  
  
 常量数据 = {  
 service_id:服务ID,  
 模板ID:模板ID,  
 user_id:公钥,  
 模板参数:模板参数,  
 访问令牌:私有密钥  
 } const emailjsURL = "https://api.emailjs.com/api/v1.0/email/send"  
  
 常量头 = {  
 “内容类型”:“应用程序/json”  
 }  
  
 等待 axios.post(emailjsURL, ** _JSON_** .stringify(数据),{标题})  
 .then((响应) => {  
        **_安慰_** .log('成功!', response.status, response.text);  
 //...做成功的事  
 },(错误)=> {  
        **_安慰_** .log('失败...', 错误);  
 //...做错误的事情  
 })

外传(?)

感谢您阅读我的电子邮件服务体验!

不幸的是,这个领域的大玩家只关心成功的大客户,而不是帮助小用户变得大而成功,但这就是商业。

希望这篇文章能成为陷入类似风暴的任何其他人的希望灯塔。

-安德鲁

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/23050/23020913

posted @ 2022-09-09 13:23  哈哈哈来了啊啊啊  阅读(113)  评论(0编辑  收藏  举报