首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我必须通过API Rest发送电子邮件,我应该等待返回邮寄结果吗?

在云计算领域,如果您需要通过API Rest发送电子邮件,通常情况下您不需要等待返回邮寄结果。这是因为电子邮件的发送过程通常是异步的,即使您的请求已经成功发送到邮件服务器,邮件的实际投递和发送结果可能需要一些时间才能确定。

一般来说,邮件服务器会接收您的请求并将其放入邮件队列中进行处理。随后,邮件服务器会尝试将邮件发送到目标邮箱的邮件服务器。在此过程中,可能会涉及到多个中间邮件服务器和网络节点,因此邮件的传递时间可能会有所延迟。

为了提高电子邮件发送的效率和可靠性,常见的做法是使用异步处理机制。即,您的API请求会立即返回一个成功的响应,表示邮件已经成功提交到邮件服务器进行处理。邮件服务器会在后台异步地处理邮件的投递和发送过程,而不会阻塞您的API请求。

如果您需要获取邮件的发送结果或者确认邮件是否成功投递,可以考虑以下几种方式:

  1. 回调通知:在发送邮件时,您可以提供一个回调URL,邮件服务器在发送完成后会向该URL发送一个通知,包含邮件的发送结果信息。您可以根据这个通知来处理后续的逻辑。
  2. 邮件状态查询:一些邮件服务提供商会提供查询邮件状态的API接口,您可以通过该接口查询特定邮件的发送状态和投递结果。
  3. 邮件追踪功能:某些邮件服务提供商会提供邮件追踪功能,您可以通过邮件追踪功能查看邮件的投递状态、打开情况等信息。

总之,一般情况下,您不需要等待返回邮寄结果,而是可以通过异步处理机制来发送电子邮件。如果您需要获取邮件的发送结果,可以考虑使用回调通知、邮件状态查询或者邮件追踪功能来实现。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

REST 十诫

他们能做到吗?或许,他们有可能。他们应该这么做吗?不,我不这么认为。 依我看,REST 依然是丛林中的王者,不会轻易被打倒。REST 的唯一问题在于,归根结底,它既不是标准,也不是协议。...(你愿意跟随我进入丛林吗?) 要务实 这其实很简单。如果你正在构建 REST API,你应当接受并使用 JSON 进行响应。不要用 XML。不要用别的什么东西。就是 JSON。...通过更新,可以知道哪些版本在使用,只是从 URL 到指向正确的文档版本。REST APIs 基本上是以 URI 为基础的,我想我们应该保持这一传统,使用基于 URI 的版本管理。...因为我们响应的状态代码是 401(未授权),所以大家都知道这是客户端故障,必须通过客户端来解决,而非 API。我只是举一个例子,但我的意思是,你应该在适当的情况下使用适当的 HTTP 状态代码。...那么,让我们来想象一下,有一位用户在自己的手机中发送了一封无效的电子邮件。它以某种方式被传送到 API,API 自然会出发一次确认和错误,并且响应 400(错误请求)。

39720

只需使用VS Code的REST客户端插件即可进行API调用

在过去,为了在连接 UI 以接受数据之前测试 REST API,通常必须通过终端的命令行查询 API,或者使用像 Insomnia 或 Postman 这样的 GUI(我在之前的博客中对它们进行了比较)...安装 REST Client 要找到它,打开 VS Code 中的市场扩展(左侧面板上的俄罗斯方块小图标),在搜索栏中输入 “rest client”,然后安装列表中的第一个结果(作者应该是 Huachao...POST 示例 我将介绍的第一个示例是 REST Client 的 POST,因为用户在我的应用程序中必须先注册才能进行其他任何操作(毕竟,这只是一个登录服务)。...所以,我们把所需的字段填好,然后,在 POST 上面应该会出现一个小小的 send Request 选项。把鼠标放在上面,然后点击,看看会有什么结果。...使用 REST Client 也不难。 对于这个请求,请求类型更新为 PUT,body 包括该对象上需要更新的任何字段。在我的应用程序中,用户可以更新其名字,姓氏或电子邮件。

8.5K20
  • GraphQL是API的未来,但它并非银弹

    前三个问题可以通过另外编写一个 REST API 来解决。将新编写的 API 作为外观,用于特定的用户界面。以 Next.JS 为例。Next 提供了非常轻量级的语法定义 API。...如果没有任何变化,如何使 GraphQL 服务器返回 304 状态码?你不是必须首先将所有查询转换为 GET 请求吗?要是那样的话,你的 GraphQL 客户端和服务器是否很容易支持这一点?...相反,我认为它实际上使情况变得更糟。 你必须支持移动应用程序吗?你应该意识到,发布原生应用需要时间。你必须等待应用商店的审批,你会发现,许多用户永远不会(或缓慢地)安装新版本。...你可以向模式添加自定义指令,以获得类似于 OAS 的结果,但你必须得自己维护这样的自定义实现。 你可能会认为,OAS 不能保证 API 的响应符合规范。你说的对。...你必须描述所有的 API,至少在开始时,这会是一种负担。 需要补充的一点是,有很多框架允许你用自己喜欢的编程语言描述模式,比如,通过定义对象或类。

    2K10

    微服务之集成(四)

    如果我决定为了更好的表示数据或者增加可维护性而修改表结构的话,我的消费方就无法进行工作。 数据库是一个很大的共享API,但同时也非常不稳定。...为了不影响其他服务,我必须非常小心的避免修改与其他服务相关的表结构。这种情况下,通常需要做大量的回归测试来保证功能的正确性。 缺点二,其次,消费方与特定的技术选择绑定在了一起。...如果使用异步通信,调用方不需要等待操作完成就可以返回,甚至可能不需要关心这个操作是否完成。...当我们在MusicCorp中创建用户时,发生了什么: (1) 在客户的积分账户中创建一条记录 (2) 通过邮政系统发送一个欢迎礼包 (3) 向客户发送欢迎电子邮件 当我们在考虑具体实现时,有两种架构风格可以采用...在创建时,它会跟积分账户、电子邮件服务及邮政服务通过请求响应的方式进行通信。客户服务本身可以对当前进行到了哪一步进行跟踪。

    62040

    为什么微服务架构需要聚合

    如果修改实体X需要同时修改实体Y,则实体X和实体Y必须包含在相同的聚合中。 类似地,如果基于实体Y和Z的运算结果可能会导致拒绝对实体X进行编辑,则这三个实体必须包含到相同的聚合中。...很多场景中,会通过数据库来对实体进行变更,但也可以通过内存或其他机制。同时所有必需的更改都是通过对聚合执行单次调用而发生的。因此,这里隐含的是我们已经定义了相应的API。...例如,当通过数据库调用检索一个Order时,应该返回多少数据?显然,Order详情包含状态、ID和下单日期。那么是否需要返回所有的Order物品?物品从哪里寄出以及寄到哪里?...那么可以吗?...我们可能会发送所有的电话号码,但如果另一个消费者需要通过电子邮件通知该User已经对该修改进行了处理,那么是否应该发送User的所有电子邮件?

    1.5K20

    用JUnit和Byteman测试Spring中的异步操作

    测试用例假设我们注册了一个新的应用程序用户(所有事务都已提交)并向他发送电子邮件。电子邮件发送操作是异步的。 现在,该应用程序只包含一些测试,这些测试显示了如何测试这种情况。...假设该应用程序允许通过Rest API注册用户。因此,Rest API客户端发送带有用户数据的请求,Rest API控制器正在处理该请求。...在数据库提交事务之后,但在返回Rest API响应之前,控制器将调用异步执行器向一个具有注册链接的用户发送电子邮件(以确认电子邮件地址)。 整个过程在下面的序列图中显示。 ?...现在,我猜测这可能不是注册用户的最佳方法。可能更好的方法是使用某种调度程序组件来检查是否有电子邮件要发送。更不用说对于更大的应用程序,单独的微服务将更适合。...此测试方法的目的是确认可以通过rest API控制器注册新的应用程序用户,并且该应用程序向用户发送包含注册细节的详细信息的电子邮件。

    1.8K10

    CTO,开发人员:如何评估外部API的质

    现在,为了改善您的服务,找到一个外部API变得越来越容易。越来越多的公司提供API。问题是许多开发人员/ CTO立即启动API集成,而这应该是最后一步!...图书馆 您可以使用您喜欢的语言使用特殊库来使用API​​吗?作为Python和Go开发人员,我总是很高兴看到提供Python库的API(我知道我现在可以忘记Go)。...通过坏的惊喜我的意思是服务中断,功能回归,甚至是服务的结束......你可以部分解决,通过问自己以下几个问题: 这个API在互联网上很受欢迎(一般来说,如果你发现很少的信息,逃跑)?...技术支援 当您遇到问题并且答案相关时,请确保有人通过电子邮件快速回复您。如果您位于欧洲并且API由美国公司运营,请检查时差是否不是太大问题。 尊重标准 在我看来,您今天只选择RESTful API。...您是否会因没有返回结果的请求(HTTP 404)而被收费?确保您了解定价的所有含义。 服务质量(QoS) QoS非常重要。基本上,您希望API快速运行并尽可能减少停机时间。

    72710

    REST API 设计最佳实践:如何构建、设计和使用 API ?

    学习 HTTP 基础知识 如果你想构建一个设计良好的REST API,那么你必须了解HTTP协议的基本知识。我坚信这将帮助你做出正确的设计选择。...不要返回纯文本 尽管并非强制规定的,但大多数REST API通常约定使用JSON作为数据格式。然而,仅返回包含JSON格式字符串的响应体是不够好的。您还应该指定Content-Type标头。...你的API最糟糕的事情莫过于返回一个带有200 OK状态码的错误响应。 这是最差的语义,相反,应该返回一个能准确描述错误类型的有意义HTTP状态码。...曾经我不得不集成一个API,它对每个响应都返回200 OK,并通过status字段来表示请求是否成功: { "status": "success", "data": {} } 尽管HTTP...我强烈建议您试一试这些框架,它们将帮助您构建美观、优雅且设计精良的REST API。 结束语 我们都应该努力使API变得易于使用。无论是对于消费者,还是我们自己的开发人员同伴。

    45240

    为什么 NodeJS 是构建微服务的最佳选择?

    比如,如果你需要发送更多的电子邮件,你只需要扩展负责电子邮件功能的微服务。...弄清你是否需要微服务的最好方法是问自己:我有关于单体应用的问题吗?如果有的话,或许你应该考虑转向微服务。如果没有,那就坚持下去——没有必要把时间花在一个根本不存在的问题上。...因此,从演示的角度来看,通过 HTTP 实现一个微服务与实现 NodeJS API 没有什么不同。 同时,通过 HTTP 来使用 REST 也很容易,但如果从这个协议切换到其他协议时,会出现一些问题。...步骤 4:API 网关 现在我们有了微服务,并进行了快速测试,看它是否能接收请求并返回响应,现在是时候创建一个 API 网关并将其连接到微服务上了。...在路由 create-user 处受到 POST 请求时,API 网关将把请求和有效载荷一起转发给微服务,然后从微服务返回响应给用户。

    1.8K20

    flask 应用程序编程接口(API)最后一节

    一个给定的API是否符合REST规范的话题往往是REST“纯粹主义者”之间激烈冲突的源头,REST“纯粹主义者”认为REST API必须以非常明确的方式遵循全部六个特征,而不像REST“实用主义者”那样...为了让你了解REST论文中的内容,以下各节将介绍 Fielding的六项原则。 客户端-服务器 客户端-服务器原则相当简单,预计其字面含义,在REST API中,客户端和服务器的角色应该明确区分。...因此,对于客户端来说,如果不直接连接到服务器,它发送请求的方式应该没有同样,这个原则规定服务器兼容直接接收来自代理服务器的请求,所以它绝不能假设连接的另一端一定是客户端 这是REST的一个重要特性,因为能够添加中间节点的这个特性...另外,我还需要确保username和email串联尚未被其他用户使用,因此我尝试使用获得的用户名和电子邮件从数据库中加载用户,如果返回了有效的用户,那么我也将返回错误给客户端。...API中没有HTML或登录页面的概念,如果客户端发送带有无效或所有权凭证的请求,服务器必须拒绝请求并返回401状态码。

    5K10

    详解微服务技术中进程间通信

    : 同步:客户端期望从服务得到及时的返回,并且甚至可以因此阻塞片刻 异步:客户端不会在等待返回结果的时候阻塞,返回结果也没必要立刻被发送出来 下表显示出各种交互风格: 一对一一对多同步请求/响应 异步通知发布.../订阅请求/异步响应发布/异步响应 有如下几种一对一的交互形式: 请求/响应:客户端发送一个请求给一个服务,并且等待响应结果,客户端期望结果能快速的返回,在一个基于线程的应用中,发送请求的线程甚至可能在等待的时候被阻塞...异步(基于消息的通信) 当使用消息时,进程间通过异步的交换消息来通信。客户端通过向服务发送消息来发送请求,如果期望服务返回应答,那么它发送回一个独立的消息给客户端。...由于通信是异步的,客户端不会阻塞在等待返回结果上,客户端应该是基于不会立刻收到返回结果的假设来实现。...REST使用HTTP的方法来操作资源,通过URL来引用资源。比如,GET请求会返回一个资源的信息,返回结果用XML文档或者JSON对象来表示,POST请求创建一个资源,PUT请求是更新一个资源。

    48540

    微服务技术中进程间通信

    : 同步:客户端期望从服务得到及时的返回,并且甚至可以因此阻塞片刻 异步:客户端不会在等待返回结果的时候阻塞,返回结果也没必要立刻被发送出来 下表显示出各种交互风格: 一对一 一对多 同步 请求/响应...异步 通知 发布/订阅 请求/异步响应 发布/异步响应 有如下几种一对一的交互形式: 请求/响应:客户端发送一个请求给一个服务,并且等待响应结果,客户端期望结果能快速的返回,在一个基于线程的应用中...异步(基于消息的通信) 当使用消息时,进程间通过异步的交换消息来通信。客户端通过向服务发送消息来发送请求,如果期望服务返回应答,那么它发送回一个独立的消息给客户端。...由于通信是异步的,客户端不会阻塞在等待返回结果上,客户端应该是基于不会立刻收到返回结果的假设来实现。...REST使用HTTP的方法来操作资源,通过URL来引用资源。比如,GET请求会返回一个资源的信息,返回结果用XML文档或者JSON对象来表示,POST请求创建一个资源,PUT请求是更新一个资源。

    61610

    来自前端同学对后端童鞋的吐槽!@!#^$%

    : [], authors: [], comments: [] } comments 里包含不同文章的 comment,我必须通过类似于 articleId 的字段对它们执行 group...这体现在几点: 我们真的需要一个平行于返回结果的字段展示 meta 信息吗? 每一次请求我们都需要 meta 信息吗? meta 信息一定要在 meta 字段里吗?...以请求失败的错误信息为例,错误信息只会出现在接口非正常返回的情况下,但我们应该始终在返回体中用一个字段为它预留位置吗?...API 和代码应该是精准的,准确表达你想实现的一切而不存在有歧义 有人可能会说不就是多了一层封装吗?实现上也花不了多少的功夫何至于大惊小怪。...目前看来绝大部分的方式是通过 REST API 来达成的,也并没有什么事情是 REST API 无法做到的,但事实上这几年技术的进步给了我们更多的选择,如果选择更有针对性的实现方案,效果会更好 例如在实时数据的场景下

    44520

    有理有据:一篇来自前端同学对后端接口的吐槽!

    : [], authors: [], comments: [] } comments 里包含不同文章的 comment,我必须通过类似于 articleId 的字段对它们执行 group...这体现在几点: 我们真的需要一个平行于返回结果的字段展示 meta 信息吗? 每一次请求我们都需要 meta 信息吗? meta 信息一定要在 meta 字段里吗?...以请求失败的错误信息为例,错误信息只会出现在接口非正常返回的情况下,但我们应该始终在返回体中用一个字段为它预留位置吗?...API 和代码应该是精准的,准确表达你想实现的一切而不存在有歧义 有人可能会说不就是多了一层封装吗?实现上也花不了多少的功夫何至于大惊小怪。...目前看来绝大部分的方式是通过 REST API 来达成的,也并没有什么事情是 REST API 无法做到的,但事实上这几年技术的进步给了我们更多的选择,如果选择更有针对性的实现方案,效果会更好 例如在实时数据的场景下

    95820

    Python 自动化指南(繁琐工作自动化)第二版:十八、发送电子邮件和短信

    警告 我强烈建议你为任何发送或接收电子邮件的脚本设置一个单独的电子邮件帐户。这将防止程序中的错误影响您的个人电子邮件帐户(例如,通过删除电子邮件或意外发送垃圾邮件给您的联系人)。...EZGmail 是我编写的一个模块,它工作在官方 Gmail API 之上,并提供了一些功能,使从 Python 使用 Gmail 变得很容易。...从 Gmail 账户发送邮件 一旦有了一个token.json文件,EZGmail 模块应该能够通过一个函数调用发送电子邮件: >>> import ezgmail >>> ezgmail.send('...- Dec 09 前面的search()调用应该产生相同的结果,就好像你在搜索框中输入“机械战警”,如图 18-1 中的所示。...', from_=myTwilioNumber, to=myCellPhone) 在输入最后一行之后,您应该会收到一条短信,内容是:“从您的 Twilio 试用帐户发送 Watson 先生——过来——我想见您

    11.3K40

    《微服务设计》第 4 章 集成

    添加新客户可能会触发一个新的流程,比如进行付账设置、发送欢迎邮件等 ---- 4.3 共享数据库 目前为止,我和同事在业界所见到的最常见的集成形式就是数据库集成。...但是很多 RPC 的实现隐藏得有些过头了,进而会造成一些问题 4.6.3 脆弱性 4.6.4 RPC很糟糕吗 ---- 4.7 REST REST 是受 Web 启发而产生的一种架构风格。...HATEOAS 背后的想法是,客户端应该与服务端通过那些指向其他资源的链接进行交互,而这些交互有可能造成状态转移。...然后等到老的消费者都采用了新的方式,再通过收缩 API 去掉旧的功能 4.13.5 同时使用多个版本的服务 另一种经常被提起的版本管理的方法是,同时运行不同版本的服务,然后把老用户路由到老版本的服务,而新用户可以看到新版本的服务...我的客户经常纠结这样的问题:“应该自己做,还是买?”

    59640

    REST 深度进阶

    不管怎么说,在我看来,REST 仍然是 API 接口规范的王者,并且不会在短时间内被取代。 在我的习惯中,使用 REST 会有以下几个约束。 1....这儿我逐个说说: GET - 在仅仅用于读数据时,应该用 GET。不写入、不更新,只读取数据。这个概念很简单。而且,在这个前提下,相同的请求一定会返回相同的结果。...都 9021 年了,居然还有人用拼音首字符,说出来你敢信吗? 在我看来,所有的 API 都应该可以在不看注释和说明的情况下被调用方理解,从调用端点,到参数,和 JSON 的键。...另一个影响性能的因素是 API 发送到调用端的数据量。要做到确保 API 只返回调用端需要的数据,而不是全部。如果可能,不要每次都返回完整的模型细节和关系。试一下,但要与响应中的返回模型保持一致。...这里我也必须说, REST 本身并不是一个标准,所以也不会有人告诉你什么是对的,什么是错的。

    49410

    为什么我使用 GraphQL 而放弃 REST API?

    至此,我再也无法回过头来享受使用 REST 的工作了。 REST 有什么问题吗? 每个 REST API 都是独特的 公平地说,REST 甚至不是一个标准。...参见 GitHub REST API(至少不是在头中传递 JSON)。 说到过滤,就有趣多了……需要按一个字段过滤吗?没问题,可能是/todos?...URL 查询组件已经不够用了,但是GET请求中的请求体也不太好,这意味着你最终要在POST请求中发送非可变查询(Elasticsearch 就是这样做的)。至此,API 还是 RESTful 的吗?...不再有多个重量级的查询发送到一个刚性的 REST API,为了让客户端可以在应用程序 UI 中一次性显示它。你不再受限于一组端点,而是有一个可以查询和修改的模式,能够挑选客户端指定的字段和对象。...如果服务器提供这种模式,文档中可能会声明,null偏移量意味着默认情况下应该返回第一页。

    2.3K30

    KYC和区块链

    然后我会看到我的所有文件和信息,并说明我将向银行提交哪些文件和信息。我点击“允许”,然后等待银行决定我是否是合适的客户。 我需要用一支黑色的钢笔在一张纸上签字,然后邮寄给银行吗?...为了让消费者通过,应该传达它的好处和易用性:通常人们比隐私更关心便利(比如信用卡,社交媒体等)。 ---- 区块链来拯救? ---- 那么区块链适合哪里?...以下是我会争辩的一些基本规则: 人们应该掌握自己的数据。 然后,人们应该能够临时访问希望查看其数据的机构。 人们应该有选择披露哪些数据。 人们应该能够在它们过期或需要更新时从该注册表中删除文档。...当我将这些经过数字签名的文件通过电子邮件发送给人员时,他们可以很容易地看到他们实际上是从发布机构发起的,并且没有被篡改。这比我们挥手可以轻易伪造的那些纸张安全得多。...通过证明这个账户的所有权,我可以证明我的身体自我和我的在线活动之间的联系。

    3.3K90

    如何用Python抓取最便宜的机票信息(上)

    它保存一个包含结果的Excel,并发送一封包含快速统计信息的电子邮件。显然,目的是帮助我们找到最好的交易! 实际应用取决于您。我用它搜索假期和离我的家乡最近的一些短途旅行!...把结果邮寄给你,我建议将excel文件保存到Dropbox文件夹中,这样你就可以随时随地访问它了。 ? 它会搜索“灵活日期”,因此它会在你首先选择的日期之前和之后的3天内查找航班。...我将使用randint使bot在每次搜索之间的睡眠时间是随机的。这通常是任何bot都必须具备的特性。如果运行前面的代码,应该会打开一个Chrome窗口,bot将在其中导航。...它应该类似于我下面使用的链接,我将变量kayak定义为url,并从webdriver执行get方法。您的搜索结果应该出现。 ?...获取所有结果可以通过像下面这样的for循环来实现。如果您理解了这一部分,您应该能够理解接下来的大部分代码。

    3.8K20
    领券