cpl*_*ogl 3 javascript gmail google-api node.js typescript
我正在尝试在我的应用程序中实现电子邮件/gmail 发送机制。这是一个桌面应用程序,其托管内容是在 React 和 Electron 的帮助下编写的。我一直在尝试以网络上描述的各种方式实现它,使用各种模块、googleapi等,但总是会出现一些奇怪的错误,甚至更神秘的问题描述 - 代码通常基于“Node.js”文章的部分。我不知道我是否完全理解这个问题的架构方面,以及是否有可能触发发送机制,或者是否必须以服务器端服务的形式实现。如果有人能够阐明这个问题,我将不胜感激,因为我已经在这个问题上花了太多时间。提前致谢!
想通了(终于!)。我把它写在这里,希望它能对将来的人有所帮助。
所有尝试和方法对我失败的主要原因是我在渲染/浏览器进程而不是主电子/节点进程上实现它们(来自 Electron 的文档)。当我将本文中详细描述的实现(利用nodemailer 的方法)移至主进程时(在我的例子中,主进程几乎仅由electro.js组成),并通过ipc(进程间通信)从渲染进程触发它奇迹般地开始工作了!
感谢罗伯特指出这个问题,因为以下声明让我走上了正确的道路。
当我尝试实现nodemailer代码客户端时,我遇到了同样的问题。原因是因为nodemailer似乎无法在浏览器中工作(仅在节点中)。将其移动到服务器端(进入快速应用程序)解决了这个问题。
// electron.js
var nodemailer = require("nodemailer");
function SendIt() {
var transporter = nodemailer.createTransport({
service: "gmail",
auth: {
user: "your_email@gmail.com",
pass: "your_password",
},
});
const mailOptions = {
from: "your_email@gmail.com",
to: "recepient@gmail.com",
subject: "Subject of your email",
html: "<p>Your html here</p>",
};
transporter.sendMail(mailOptions, function (err, info) {
if (err) console.log(err);
else console.log(info);
});
}
electron.ipcMain.on("SendIt", (event, args) => {
console.log("ipcMain: Executing SendIt");
SendIt();
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3560 次 |
最近记录: |