Форум программистов, компьютерный форум, киберфорум
Node.js
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
-34 / 2 / 1
Регистрация: 02.02.2011
Сообщений: 82

Отправить письмо smtp.yandex, nodemailer

13.02.2025, 11:22. Показов 3838. Ответов 13

Студворк — интернет-сервис помощи студентам
Не могу победить nodemailer Постоянно выдает ошибку, перепробовал сотню вариантов.
JavaScript
1
2
3
4
5
6
7
8
9
10
11
var transporter = nodemailer.createTransport({
 
        //service: 'yandex',
        host: 'smtp.yandex.ru',
        port: 535,
        secure: false, // true for 465, false for other ports
        auth: {
            user: 'my_email@yandex.ru',
            pass: 'my_pass', 
          },
});
Сама посылка
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
async function emailnet(ema_us, transporter) {
                                                                     
    const info = await transporter.sendMail({
      from: 'my_email@yandex.ru', 
      to: ema_us, // posta klienta
      subject: "Hello ✔", 
      text: "Hello world?", 
      html: "<b>Hello world?</b>", 
    });
  
    console.log("Message sent: %s", info.messageId);
                                                                     
};
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.02.2025, 11:22
Ответы с готовыми решениями:

Почему у меня не работает nodemailer smtp?
привет, я сделал почтовый сервис и хотел использовать smtp для рассылки, но при попытке авторизации, не принимается логин или пароль, хотя...

Отправить письмо через MFW
Подскажите пожалуйста я не силен в JAVA но мне хотелось бы чтобы мои пользователи могли с моего сайта http://mishyn.com.ua отправить...

Как отправить письмо на почту динамически перезагружая сайт
Суть проблемы когда пользователь оставляет свой номер и нажимает на кнопку перезвонить, то ничего не приходит, только ссылка в виде get...

13
 Аватар для voraa
1218 / 1102 / 173
Регистрация: 21.01.2024
Сообщений: 5,019
13.02.2025, 11:33
А ошибку то какую выдает?

Еще надо убедиться, что яндекс позволяет отправлять почту с помощью скриптов.
0
-34 / 2 / 1
Регистрация: 02.02.2011
Сообщений: 82
13.02.2025, 14:32  [ТС]
Сейчас, если коротко то -
Error: Сonnection timeout
at ////..index.js 809:19
code: 'ETIMEDOUT'
command: 'CONN'

Добавлено через 1 минуту
Понятно, что то с коннектом к серверу.
Я не знаю как посмотреть отсылает ли Node что то в сеть?

Добавлено через 2 минуты
Цитата Сообщение от voraa Посмотреть сообщение
Еще надо убедиться, что яндекс позволяет отправлять почту с помощью скриптов.
Я узнавал у службы поддержки, вроде все должно работать.

Добавлено через 2 часа 43 минуты
Попутный вопрос, как можно проверить соединение к серверу допустим используя postman? Запрос типа smtp://далее не знаю как нужно, будет корректен?
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3795 / 1621 / 428
Регистрация: 14.03.2022
Сообщений: 4,024
13.02.2025, 15:15
Обещают что будет работать...

Кликните здесь для просмотра всего текста
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
mport nodemailer from 'nodemailer'
 
const transporter = nodemailer.createTransport({
  service: 'gmail',
  auth: {
    user: 'login@gmail.com',
    pass: 'pass'
  }
})
 
const mailOptions = {
  from: 'login@gmail.com',
  to: 'to.my@gmail.com',
  subject: 'Hello World!',
  html: `
    <h1>Hello?</h1>
    <p>How are you?</p>
  `
}
 
const send = () => {
  return new Promise((resolve, reject) => {
    transporter.sendMail(mailOptions, (error, info) => {
      if (error) {
        reject(error)
      }
      resolve(info)
    })
  })
}
 
await send()

Как отправить письмо через Яндекс SMTP
Для этого нужно немного модифицировать объект, который мы передаем в функцию createTransport():
Кликните здесь для просмотра всего текста
JavaScript
1
2
3
4
5
6
7
const transporter = nodemailer.createTransport({
    service: 'yandex',
    auth: {
      user: 'login',
      pass: 'pass'
    }
})

Статья https://vverh.digital/blog/nod... end-email/
0
-34 / 2 / 1
Регистрация: 02.02.2011
Сообщений: 82
13.02.2025, 15:43  [ТС]
Вот тебе и оп
JavaScript
1
2
3
4
import nodemailer from 'nodemailer'
//у меня
 
var nodemailer = require('nodemailer');
Не могу сформулировать но разница явно есть!
0
409 / 301 / 112
Регистрация: 28.08.2013
Сообщений: 780
13.02.2025, 16:28
Код рабочий, проверил.
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
const nodemailer = require('nodemailer');
const cfg = require('./config');
 
// Create a transporter object using the default SMTP transport
let transporter = nodemailer.createTransport({
    service: 'Yandex',
    auth: {
        user: cfg.emailUser,  // your email
        pass: cfg.emailPass   // your email password
    }
});
 
// Setup email data
let mailOptions = {
    from: cfg.emailUser,                          // sender address
    to: 'xxxx@gmail.com',                         // list of receivers
    subject: 'Hello',                             // Subject line
    text: 'Hello world?',                         // plain text body
    html: '<b>Hello world?</b>'                   // html body
};
 
// Send mail with defined transport object
transporter.sendMail(mailOptions, (error, info) => {
    if (error) {
        return console.log(error);
    }
    console.log('Message sent: %s', info.messageId);
});
Но! Yandex разделяет пароли пользователей (людей) и приложений.
Пользователь остаётся тот же, но для приложения нужно создать отдельный пароль. Тут.
0
-34 / 2 / 1
Регистрация: 02.02.2011
Сообщений: 82
13.02.2025, 17:23  [ТС]
Хорошо спасибо, скоро обязательно проверю, я сейчас вне доступа к компу, только один вопрос, а в чем смысл загонять переменные почты в отдельный файл конфига? Это как-то регламентировано или можно напрямую вставить?
JavaScript
1
const cfg = require('./config');
Добавлено через 20 минут
Вот чего не пробовал так это писать Yandex c заглавной буквы, возможно тут и кроется ошибка.
Цитата Сообщение от kidASM Посмотреть сообщение
service: 'Yandex'
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3795 / 1621 / 428
Регистрация: 14.03.2022
Сообщений: 4,024
13.02.2025, 17:29
Цитата Сообщение от cilin Посмотреть сообщение
а в чем смысл загонять переменные почты в отдельный файл конфига?
Дабы не светить значения в программе.
0
-34 / 2 / 1
Регистрация: 02.02.2011
Сообщений: 82
13.02.2025, 17:31  [ТС]
Цитата Сообщение от krvsa Посмотреть сообщение
Дабы не светить значения в программе.
Ну если только для этого, есть более изящные способы.
0
409 / 301 / 112
Регистрация: 28.08.2013
Сообщений: 780
13.02.2025, 20:30
Главное, вместо своего пароля, нужно использовать пароль для приложения.

Цитата Сообщение от cilin Посмотреть сообщение
Ну если только для этого, есть более изящные способы.
Это просто пример, а не код для проды.
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3795 / 1621 / 428
Регистрация: 14.03.2022
Сообщений: 4,024
14.02.2025, 08:47
Цитата Сообщение от cilin Посмотреть сообщение
есть более изящные способы
Используй их.
0
-34 / 2 / 1
Регистрация: 02.02.2011
Сообщений: 82
14.02.2025, 13:40  [ТС]
Способы это хорошо но не работает это ни как. У меня вопрос 'nodemailer' и 'nodemailer-smtp-transport', это различные пакеты или это?

Добавлено через 27 минут
Интересный факт
JavaScript
1
2
3
4
5
6
7
8
9
10
11
var transporter = nodemailer.createTransport({
 
  host: "smtp.ethereal.email",
  port: 587,
  secure: false, // true for port 465, false for other ports
  auth: {
    user: "maddison53@ethereal.email",
    pass: "jn7jnAPss4f63QBp6D",
  }
 
});
Все разумеется работает, из оффииициального источника https://nodemailer.com/about/

Добавлено через 4 минуты
Думаю нужно кого то попинать, я имею ввиду Яндекс. Хотя судя по тому что Яндекс просит SMTPS - SSL наверное 465 порт, думаю тут могут быть коски именно с SSL.

Добавлено через 3 часа 51 минуту
Еще веселей, плюнул поставил локальный сервер но при этом ошибок нет и писем тоже нет? Где почта?

Добавлено через 4 минуты
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
var nodemailer = require('nodemailer');
 
var transporter = nodemailer.createTransport({
  host: "localhost",
  port: 25,
  secure: false,
  auth: {
    user: "мой@mail.ru",
    pass: "password",    
  },
  tls: {
    rejectUnauthorized: false
  },
 
});
 
// Setup email data
let mailOptions = {
    from: "мой@mail.ru", 
    to: "мой@mail.ru#2",                       // list of receive
    subject: 'Hello',                             // Subject line
    text: 'Hello world?',                         // plain text body
    html: '<b>Hello world?</b>',                   // html body
};
 
// Send mail with defined transport object
transporter.sendMail(mailOptions, (error, info) => {
    if (error) {
        return console.log(error);
    }
    console.log('Message sent: %s', info.messageId);
});
0
Молодой техлид)
Эксперт JSЭксперт HTML/CSS
 Аватар для mr_dramm
1818 / 1056 / 329
Регистрация: 17.07.2021
Сообщений: 2,146
Записей в блоге: 14
14.02.2025, 15:37
Цитата Сообщение от cilin Посмотреть сообщение
Еще веселей, плюнул поставил локальный сервер но при этом ошибок нет и писем тоже нет? Где почта?
попробуй включить логи и отлдку

Также документация как настроить отправку почты с mail.ru
с такими настройками не сработает я думаю
Code
1
2
  host: "localhost",
  port: 25,
0
-34 / 2 / 1
Регистрация: 02.02.2011
Сообщений: 82
20.02.2025, 14:59  [ТС]
Тема очень интересная, но Вы должны учитывать необходимость использования доверенного SSL сертификата, в противном случае все ваши письма не пропустит система борьбы со спам рассылками. Вообщем, это правильно, думаю эта тема больше подходит под определение системного администрирования серсера, хотя спорно.

Добавлено через 4 минуты
Если играться с локальной почтой
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
var transporter = nodemailer.createTransport({ 
    host: "localhost",
    port: 25,
    secure: false, // true for 465, false for other ports
    auth: {
        user: 'mail',
        pass: 'pass', 
    },
    tls: {
       rejectUnauthorized: false
    },    
});
Работает на ура!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.02.2025, 14:59
Помогаю со студенческими работами здесь

Как после того как появится сообщение о том, что письмо отправлено отправить пользователя на другую страницу?
$(function () { // init the validator // validator files are included in the download package // otherwise download...

Отправка email в функции (nodemailer)
Привет, необходимо сделать функцию отправки email'ов на node.js, тестовое сообщение создается нормально, без ошибок, как переношу все в...

nodemailer и функция. Не понятный вызов двух функций
Возник вопрос. Почему когда я отправляю данные формы на сервер, и первым вызываю функцию save(), то на почту не отправляются данные, а если...

Nodemailer не подключается к smtp.yandex.ru
Добрый день, уважаемые форумчане. Хочу на сайте организовать проверку принадлежности почтового ящика пользователю. Для этого при...

Отправить письмо через SMTP не используя fsockopen
Привет! Пытаюсь отправить почту на сайте используя SMTP. Вот кусок кода: $smtp_server = 'smtp.timeweb.ru;'; // адрес SMTP-сервера...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru