当前位置: 首页 > Web前端 > JavaScript

Nodemailer使用Gmail发送邮件

时间:2023-03-27 18:36:04 JavaScript

第一步安装nodemailernpminstallnodemailer第二步创建谷歌项目2.1在下面地址打开启用的API和服务2.2创建新项目2.3输入项目信息2.4创建完成后,启用API2.5输入gmail搜索,选择GmailAPI2.6点击启用API2.7点击CreateCredentials2.8创建OauthCredentials在redirectURL中输入https://developers.google.com...2.9创建完成2.10然后点击CredentialsTab并编辑刚刚创建的凭证2.11复制clientID和clientkey以供后续使用2.12点击OAuth同意界面添加测试用户2.13添加当前用户2.14创建完成后,会在用户中看到list2.15打开地址https://developers.google.com...配置之前复制的客户端ID和clientkey,然后选择gmailApi点击AuthorizeAPIs按钮2.16选择当前登录的账号获取n授权帐户。如果在授权的时候出现这个提示,是因为创建的应用没有设置测试用户,将当前用户添加到测试用户列表中就可以了(步骤:2.13、2.14、2.15)2.17获取Token因为这是刚刚一个测试app,所以会有提示,点击继续2.18同意授权2.19同意授权后,会返回页面https://developers.google.com...点击按钮获取Token2.20判断右侧出现HTTP/1.1200OK,已经显示相关信息。复制左侧的RefreshToken和访问令牌。此时,我们将在下一步中创建所需的信息和代码。第三步写写邮件代码constexpress=require("express");constnodemailer=require("nodemailer");constapp=express();constport=3333;app.get("/",(req,res)=>{consttransporter=nodemailer.createTransport({host:"smtp.gmail.com",port:465,secure:true,auth:{type:"OAuth2",user:"test@gmail.com",clientId:"344551453406-rqk1a539bljgc9ldt9gv2kfbv3ud7l9u.apps.googleusercontent.com",clientSecret:"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",refreshToken:"1//0412Uzn4225S4CgYIARAAGAQSNwF-L9IrZNMaQswZxgQ_fvrrS70UAH9_e03DP7_c7MJCenpjY4WZPYagEP31LQ-SRUKuhe86zq8",accessToken:"ya29.A0AVA9y1sQzoQjsd1wjcHGa5RYik1Bm1yXMWdMx3_Ddwyxwn6sA96sioaCSOVo4UaztU2tTNP4M36okz4JzTyQpR7hz3rpmt3jEGGO_hIwto52m8qn2_sPfXVIVW0ur1otQnMpToD5_T_fkiDGhPdG_OIGNhOyYUNnWUtBVEFTQVRBU0ZRRTY1ZHI4VkpkVlBFZEdBQnpoeVVkbzQta2FJQQ0163",??},});transporter.sendMail({from:"test@gmail.com",to:"test@qq.com",subject:"Gmail测试邮件",html:"Gmail测试邮件内容",});res.send("HelloWorld!");});app.listen(port,()=>{缺点sole.log(`侦听端口${port}`的示例应用程序);});运行文件nodeapp.js并访问localhost:3333过了一会儿我们就可以收到Gmail发送的邮件了。第四部分是定期刷新Tokenconstres=awaitctx.curl("https://accounts.google.com/o/oauth2/token",{method:"POST",contentType:"json",dataType:"json",data:{client_id:clientId,client_secret:clientSecret,refresh_token:refreshToken,grant_type:"refresh_token",},});常量{access_token}=res.data||{};恭喜本文由多帖操作工具平台EaseWriting发表