在前端angular应用程序上访问gmail API

在前端angular应用程序上访问gmail API,angular,nodemailer,Angular,Nodemailer,为了弄清楚如何访问GooglesAPI,以便在我的网站上创建一个联系人表单,我找到了这个示例,但我正在努力使用/转换它以便在Angular中使用 我刚刚完成了npm安装googleapis,但不确定如何继续。我知道严格来说这不是一个编程问题,但我想知道是否有人能帮我为我的投资组合设置一个邮件(联系方式)。这也是我第一次使用API,我正在做大量的研究,以找出如何正确地执行所有操作 我试图浏览谷歌API的文档,但由于它是自动生成的,所以界面有点可疑。。。我真的找不到任何有用的信息 我想做的是让人们

为了弄清楚如何访问GooglesAPI,以便在我的网站上创建一个联系人表单,我找到了这个示例,但我正在努力使用/转换它以便在Angular中使用

我刚刚完成了npm安装googleapis,但不确定如何继续。我知道严格来说这不是一个编程问题,但我想知道是否有人能帮我为我的投资组合设置一个邮件(联系方式)。这也是我第一次使用API,我正在做大量的研究,以找出如何正确地执行所有操作

我试图浏览谷歌API的文档,但由于它是自动生成的,所以界面有点可疑。。。我真的找不到任何有用的信息

我想做的是让人们联系我,所以我给我的工作邮件地址发一封电子邮件,附上他们的邮件地址,这样我就可以回复,一个主题和一个主体。这是我需要的所有信息,但由于API非常不清楚,我很难弄清楚如何在Angular(Node.js)中实现这一点

TL;DR:如何将Angular 8(Node.js)连接到gmail api(或使用smtp)

更新:我改为对smtp使用nodemailer,但它仍然不能工作

import*作为来自“nodemailer”的邮件程序;
出口类邮件{
构造函数(){
这个。send();
}
异步发送(){
const account=wait mailer.createTestAccount();
const transporter=mailer.createTransport({
主机:“smtp.gmail.com”,
港口:587,
安全:错误,
认证:{
用户:account.user,
通行证:account.pass
}
});
const info=wait transporter.sendMail({
发件人:“‘投资组合’”,
致:托本瓦纳什。dev@gmail.com',
主题:“你好”,
文字:“闭嘴”,
});
}
}
更新:关于在Angular中使用GoogleAPI的有趣文章

您可以按照以下步骤设置一个可行的示例代码。然后,您可以使用编写向您的帐户发送邮件的函数

在提供的链接中,您可以看到许多示例和详细步骤,但如果您有任何疑问,请向我进行澄清

编辑


在前面的quickstart链接中,我们都可以看到当前推荐的npm页面,以与Gmail API进行交互:
npm安装googleapis@39--保存
。您可以阅读有关Google库的Node.js依赖项的更多信息。

我看到了这个页面,但无法让它工作。。。我很想使用SendGrid(每天100封邮件,但对我来说应该足够了)作为一个易于使用的API,因为直接使用google API似乎只会给我带来问题。我希望有一个npm包,我可以用它来和GoogleAPI交互,但到目前为止我还是空着的。我还发现一篇SO帖子说不可能从前端使用API,这给我留下了更多的疑问Shey@TorbenVanAssche,从前端使用Gmail API将是一种非正统的方法,因为Node.js依赖性(浏览器没有)和(大部分被浏览器和主流防火墙阻止)。您需要一个后端来管理用户的请求并调用Gmail API。我已经更新了我的答案,以澄清所需的npm依赖关系。如果您需要进一步的帮助,请不要犹豫再次发表评论。您不能也不应该从前端发送电子邮件。任何电子邮件API都需要私钥,这些私钥需要在您自己的服务器上保持安全。您需要构建自己的API,利用gmail API并从前端调用它。send grid和您可能尝试使用的任何其他电子邮件服务也是如此。我试图通过使用GitHub页面托管我的公文包来避免支付服务器空间费用。由于我刚刚毕业,我宁愿现在不为域名付费。从前端这样做本身就产生了安全问题?在这种情况下,我需要一个后端托管服务器,对吗?我爸爸有一个网站作为他的托管网站,这是不是我应该改为这样做?前端是一个安全问题,这是不可能的。即使浏览器具有所需的nodejs依赖项(它没有,这些是您看到的错误),浏览器也不允许站点通过端口587发送,即使浏览器具有,防火墙也不允许。是的,你需要一个后端。不,您不需要域或服务器空间,这个简单的AWS API网关到lambda函数就足够了,而且非常经济高效。。。我喜欢山姆做这种事。。。我似乎已经打开了一个全新的蠕虫病毒罐,因为一些电子邮件服务提供商有可以从前端调用的实际API,它们通常需要花钱,但它们比SAM更简单。。。你只是在为一些你可以相对免费的东西买单
ERROR in ./node_modules/nodemailer/lib/sendmail-transport/index.js
Module not found: Error: Can't resolve 'child_process' in 'C:\Users\tassc\Projects\Portfolio\node_modules\nodemailer\lib\sendmail-transport'
ERROR in ./node_modules/nodemailer/lib/mailer/index.js
Module not found: Error: Can't resolve 'dns' in 'C:\Users\tassc\Projects\Portfolio\node_modules\nodemailer\lib\mailer'
ERROR in ./node_modules/nodemailer/lib/shared/index.js
Module not found: Error: Can't resolve 'dns' in 'C:\Users\tassc\Projects\Portfolio\node_modules\nodemailer\lib\shared'
ERROR in ./node_modules/nodemailer/lib/dkim/index.js
Module not found: Error: Can't resolve 'fs' in 'C:\Users\tassc\Projects\Portfolio\node_modules\nodemailer\lib\dkim'
ERROR in ./node_modules/nodemailer/lib/mime-node/index.js
Module not found: Error: Can't resolve 'fs' in 'C:\Users\tassc\Projects\Portfolio\node_modules\nodemailer\lib\mime-node'
ERROR in ./node_modules/nodemailer/lib/shared/index.js
Module not found: Error: Can't resolve 'fs' in 'C:\Users\tassc\Projects\Portfolio\node_modules\nodemailer\lib\shared'
ERROR in ./node_modules/nodemailer/lib/mailer/index.js
Module not found: Error: Can't resolve 'net' in 'C:\Users\tassc\Projects\Portfolio\node_modules\nodemailer\lib\mailer'
ERROR in ./node_modules/nodemailer/lib/shared/index.js
Module not found: Error: Can't resolve 'net' in 'C:\Users\tassc\Projects\Portfolio\node_modules\nodemailer\lib\shared'
ERROR in ./node_modules/nodemailer/lib/smtp-connection/index.js
Module not found: Error: Can't resolve 'net' in 'C:\Users\tassc\Projects\Portfolio\node_modules\nodemailer\lib\smtp-connection'
ERROR in ./node_modules/nodemailer/lib/smtp-connection/http-proxy-client.js
Module not found: Error: Can't resolve 'net' in 'C:\Users\tassc\Projects\Portfolio\node_modules\nodemailer\lib\smtp-connection'
ERROR in ./node_modules/nodemailer/lib/smtp-connection/http-proxy-client.js
Module not found: Error: Can't resolve 'tls' in 'C:\Users\tassc\Projects\Portfolio\node_modules\nodemailer\lib\smtp-connection'
ERROR in ./node_modules/nodemailer/lib/smtp-connection/index.js
Module not found: Error: Can't resolve 'tls' in 'C:\Users\tassc\Projects\Portfolio\node_modules\nodemailer\lib\smtp-connection'