node, npm and gitnpm init and git init donenpm install: express, nodemailer, dotenv
















(its important that you NEVER write such secure informations directly in a code which can be unindentionally uploaded to eg. GitHub - allways use instead dotenv and hidden-files like .env which should never get uploaded anywhere stays only locally)
.env fileOAUTH_CLIENTID=yourClientID
OAUTH_CLIENT_SECRET=yourClientSecret
OAUTH_REFRESH_TOKEN=yourRefreshToken
MAIL_USERNAME=yourGMailAdress
MAIL_PASSWORD=yourGMailPassword
.gitignore file (if not exists) and add at least to it.env
node_modules
app.jsconst express = require('express')
const nodemailer = require('nodemailer');
require("dotenv").config({ path: "./.env" });
const { gmail } = require('googleapis/build/src/apis/gmail')
const app = express()
const port = 3000
app.listen(port, () => {
console.log(`nodemailerProject is listening at http://localhost:${port}`)
})
let transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
type: 'OAuth2',
user: process.env.MAIL_USERNAME,
pass: process.env.MAIL_PASSWORD,
clientId: process.env.OAUTH_CLIENTID,
clientSecret: process.env.OAUTH_CLIENT_SECRET,
refreshToken: process.env.OAUTH_REFRESH_TOKEN
}
});
let mailOptions = {
from: process.env.MAIL_USERNAME,
to: "[email protected]",
subject: 'Nodemailer Test Project',
text: 'Hallo from my nodemailer project'
};
transporter.sendMail(mailOptions, function(err, data) {
if (err) {
console.log("Error " + err);
} else {
### console.log("Email sent successfully");
}
});