Простой вариант: объявить transporter внутри обработчика express.
Правильный вариант: промиссифицировать sendMail, т.е. обернуть в функцию, которая возвращает промис, на который можно подписаться извне.
function sendMail(mailOptions) {
return new Promise((resolve, reject) =>
transporter.sendMail(mailOptions, (error, info) => {
if(error){
reject(error);
} else {
resolve(info);
}
});
});
}
Использование промисов:
sendMail(mailOptions)
.then(info => console.log(info))
.catch(error => console.error(error));
или так:
try {
const info = await sendMail(mailOptions);
console.log(info);
} catch (error) {
console.error(error);
}