Javascript 如何通过“发送电子邮件”;smtpjs“;在reactjs中

Javascript 如何通过“发送电子邮件”;smtpjs“;在reactjs中,javascript,reactjs,typescript,smtp,smtpjs,Javascript,Reactjs,Typescript,Smtp,Smtpjs,我想在用户单击提交时通过表单发送电子邮件 为此,我使用了smtpjs软件包,您可以在这里查看网站 在纯js中,我们必须在html头标记中添加这行代码 <script src= "https://smtpjs.com/v3/smtp.js"> </script> 我为谷歌启用了不太安全的应用程序,还关闭了两步验证,但这没有帮助,你的标签正在向全局窗口对象添加属性电子邮件,但TypeScript不知道这一点。您需要告诉TypeScript此属

我想在用户单击提交时通过表单发送电子邮件

为此,我使用了
smtpjs
软件包,您可以在这里查看网站

在纯js中,我们必须在html头标记中添加这行代码

<script src=
    "https://smtpjs.com/v3/smtp.js">
  </script>
我为谷歌启用了不太安全的应用程序,还关闭了两步验证,但这没有帮助,你的
标签正在向全局
窗口
对象添加属性
电子邮件,但TypeScript不知道这一点。您需要告诉TypeScript此属性存在以及它是什么类型

由于这个包非常简单,我继续创建了一个类型声明文件。我遵循了手册中的指南和示例

设置好所有内容后,在访问
window.Email
window.Email.send()时,您将获得完整的TypeScript支持。如果要访问特定类型以将其用于变量,可以使用
Email.EmailData
Email.Attachement

您的
标记正在向全局
窗口
对象添加属性
电子邮件
,但TypeScript不知道这一点。您需要告诉TypeScript此属性存在以及它是什么类型

由于这个包非常简单,我继续创建了一个类型声明文件。我遵循了手册中的指南和示例

设置好所有内容后,在访问
window.Email
window.Email.send()时,您将获得完整的TypeScript支持。如果要访问特定类型以将其用于变量,可以使用
Email.EmailData
Email.Attachement


加载脚本时,它会创建一个全局对象
电子邮件
。您可以像下面的
窗口那样访问React代码中的任何全局对象。但是如果我是你,我会尝试找出lib是否遵循任何js模块模式,使你能够像从“smtpjs”导入电子邮件一样导入它
您的项目是否使用了
package.json
和webpack、babel等常见的生态系统?是的,我只是尝试了
窗口。电子邮件
看起来没有正确下载lin来创建全局对象,因为它向我显示此错误
属性“Email”在type window和type of globalThis
上不存在。有什么建议吗?这是运行时异常还是只是typescript不知道
窗口。电子邮件
?你可以声明它存在于窗口中。我认为类型脚本无法识别它,因为当我编写
窗口
并向其添加一个点时,它不建议使用电子邮件单词。我该怎么做?加载脚本时,它会创建一个全局对象
电子邮件
。您可以像下面的
窗口那样访问React代码中的任何全局对象。但是如果我是你,我会尝试找出lib是否遵循任何js模块模式,使你能够像从“smtpjs”导入电子邮件一样导入它
您的项目是否使用了
package.json
和webpack、babel等常见的生态系统?是的,我只是尝试了
窗口。电子邮件
看起来没有正确下载lin来创建全局对象,因为它向我显示此错误
属性“Email”在type window和type of globalThis
上不存在。有什么建议吗?这是运行时异常还是只是typescript不知道
窗口。电子邮件
?你可以声明它存在于窗口中。我认为类型脚本无法识别它,因为当我编写
窗口
并向其添加一个点时,它不建议使用电子邮件单词。我该怎么做?当我为部署运行命令
npm install
然后
npm build
时,它也不能识别
Email
。我不知道身份验证问题。当我为部署运行命令
npm install
然后
npm build
时,它也不能识别
Email
。我没有关于身份验证问题的想法。
  The SMTP server requires a secure connection or the client was not 
  authenticated. The server response was: 5.7.0 Authentication Required. Learn 
  more at - Fix: Try a different SMTP server : 
  https://elasticemail.com/account#/create-account?r=20b444a2-b3af-4eb8-bae7- 
  911f6097521c
// Type definitions for SmtpJs
// Project: https://smtpjs.com/
// Definitions by: Linda Paiste https://github.com/lindapaiste

// SmtpJS exposes a variable `Email` on the global `window` object
declare namespace Email {
  type Attachment =
    | {
        name: string;
        path: string;
      }
    | {
        name: string;
        data: string; // base64 format
      };

  interface EmailData {
    SecureToken: string;
    To: string | string[];
    From: string;
    Subject: string;
    Body: string;
    Attachments?: Attachment[];
  }

  function send(email: EmailData): Promise<string>;
}
"compilerOptions": {
...
  "typeRoots": [
    "./node_modules/@types/",
    "./src/types"
  ]
}