Для отправки электронного письма с помощью Node.js на локальном компьютере, вы можете использовать модуль nodemailer. Вот пример кода, который отправляет электронное письмо на адрес [email protected]:
```javascript
const nodemailer = require('nodemailer');
const transporter = nodemailer.createTransport({
host: 'localhost',
port: 25,
secure: false
});
const mailOptions = {
from: '[email protected]',
to: '[email protected]',
subject: 'Test Email',
text: 'This is a test email'
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);
}
});
```
Для настройки отправки электронной почты через gmail или yandex с помощью NestJS CLI, вам нужно сначала настроить конфигурацию для отправки почты. Вам нужно будет добавить ваши данные для авторизации в файле app.module.ts. Вот пример:
```typescript
const transporter = nodemailer.createTransport({
host: 'smtp.yandex.ru',
port: 465,
secure: true,
auth: {
user: '[email protected]',
pass: 'your-password'
}
});
```
При использовании smtp-relay.gmail.com или smtp.yandex.ru на локальном хосте вы можете столкнуться с ошибкой "Error: self signed certificate in certificate chain". Это связано с тем, что почтовые серверы gmail и yandex используют SSL сертификаты, которые не могут быть проверены на локальном хосте.
Чтобы обойти эту ошибку, можно добавить опцию tls.rejectUnauthorized: false к конфигурации транспорта nodemailer:
```typescript
const transporter = nodemailer.createTransport({
host: 'smtp.yandex.ru',
port: 465,
secure: true,
auth: {
user: '[email protected]',
pass: 'your-password'
},
tls: {
rejectUnauthorized: false
}
});
```
Помните, что данное решение не рекомендуется для использования в продакшене, так как это уязвимость безопасности. Вместо этого, в продакшене рекомендуется использовать доверенный SSL сертификат для вашего сервера.