var nodemailer = require('nodemailer'); const transporter = nodemailer.createTransport({ service: 'gmail',//smtp.gmail.com //in place of service use host... secure: false,//true port: 25,//465 auth: { user: 'example@gmail.com', pass: 'password' }, tls: { rejectUnauthorized: false } }); transporter.sendEMail = function (mailRequest) { return new Promise(function (resolve, reject) { transporter.sendMail(mailRequest, (error, info) => { if (error) { reject(error); } else { resolve("The message was sent!"); } }); }); } module.exports = transporter;
Использование :
//import transporter JS file const mail = require('../utils/mail'); let htmlContent = `
Contact Form
Hi,
${name} contacted with the following Details
Email: ${email}
Phone: ${phone}
Company Name: ${companyName}
Message: ${message}
` let mailOptions = { from: "Example", to: "me@gmail.com", subject: "Mail Test", text: "", html: htmlContent } mail.sendMail(mailOptions) .then(function (email) { res.status(200).json({ success: true, msg: 'Mail sent' }); }).catch(function (exception) { res.status(200).json({ success: false, msg: exception }); }); Примечание:
До отправляя электронную почту с помощью Gmail, вы должны разрешить незащищенным приложениям доступ к Gmail. Для этого перейдите в настройки Gmail https://myaccount.google.com/lesssecureapps?pli=1
[ 115]Также включите капчу https://accounts.google.com/DisplayUnlockCaptcha
Для тех, кто ищет решение этого в VB.NET:
Это было настолько просто, я не могу полагать, что не видел его: Для рассмотрения значения, функция возвратится: просто поместите указатель над именем функции. Значение покажут в подсказке.
Изменение значение: просто нажмите на эту подсказку, измените значение и совершите нападки, входят.
Visual Studio очень прохладна!
Примечание: Я протестировал его в VB.NET в Системе Команды Visual Studio 2008. Просто испытанное использование C#, но это не работает... :-(
Возвращаемые значения от функций обычно возвращаются в регистре EAX.
При установке точки останова только в конце функции затем существует шанс, что изменение EAX изменило бы возвращаемое значение. Можно изменить и просмотреть любой регистр в Visual Studio просто путем написания ее имени в окне часов.
Это, вероятно, перестанет работать, если у Вас будет оптимизация на или даже если функция является чем-то простым как return 12
. это, вероятно, также не собирается работать при возврате чего-то, что не помещается в регистр на 32 бита. Ни в малейшей степени это стоит попробовать.
Не думайте так.
У Вас должен был бы быть временный var в вызываемом или вызывающей стороне, чтобы разобраться со значением для изменения его в окне IDE Debugger/QuickWatch. Таким образом, самый простой и самый быстрый способ сделать это состоял бы в том, чтобы прокомментировать существующий код и внести временное изменение для debug-what-if.
также
private int myMethod_1()
{
var x = 12;
return x;
}
Или
private int myMethod_2()
{
var y = someCall( someValue);
return y;
}
Не смотрите его стоящий ухудшения 'предотвращения изменения кода', чтобы сделать это. Если я FUBAR, я делаю контроль, и мы являемся золотыми снова.
Почему Вы хотите изменить возвращаемое значение в вызываемом методе? Можно легко изменить его на лету в Вызывающем методе. Как только Ваша функция возвращается, Вы возвратили значение, и там можно изменить его.
private int myMethod_1() { return 12; } //call would be something like this int x = myMethod_1(); //Here you can change the value after the execution of the above line.
Даже если Вы не храните возвращаемое значение в переменной, и Вы являетесь непосредственно передающими оно к некоторому другому методу, даже затем можно изменить значение путем продвижения в тот метод и изменения значения аргумента там. Я пропускаю что-то здесь?
То, в чем Вы нуждаетесь, Дразнит. Платформы насмешки контроля как Rhinomock, Moq или Typemock.
Для вида сценария Вы описываете, я собираюсь предположить, что Вы не можете иметь чистого контракта - управляемая разработка и, возможно, должны возвратиться в поддельном поведении/состоянии. В этом случае Typemock может быть наилучшим вариантом для Вас, хотя это является коммерческим
Я думаю, что можно сделать это в Visual Studio, но это чувствует себя грязным мне.
Мои мысли - Вы, должен действительно изучать платформу поблочного тестирования и дразнить так, чтобы можно было фальсифицировать вывод myMethod_2 как 0 и видеть, какой эффект это имеет на код. IMO. Таким образом, можно уехать, возврат 0 регистрируются в модульном тесте, чтобы удостовериться, что ужасная ошибка не заглядывает снова.