Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как отправить письмо на почту с помощью javascript?

Марка Почтовая Ученик (118), на голосовании 11 месяцев назад
Делаю сайт, пользователь регистрируется, хочу чтоб для активации приходило письмо на почту
Голосование за лучший ответ
Dead Soul Ученик (231) 1 год назад
Можно и на html это сделать
Саня Семенов Оракул (60497) 1 год назад
Открыть порт почтового сервера, авторизоваться по протоколу pop3 или smtp , и записать туда тело письма правильно оформленного
Марка ПочтоваяУченик (118) 1 год назад
а подробнее?
Саня Семенов Оракул (60497) Марка Почтовая, например вот https://nodejsdev.ru/guides/webdraftt/email/
Саня СеменовОракул (60497) 1 год назад
2 в настройках почтаря (Яндекс Гугл и т п ) надо включать разрешение на отправку через третьи приложения
5 твой линукс вообще не причем, антивирь иногда блочит письма в почтовом сервере ну те которые по его мнению не несут никакой ценности или являются спамом или содержат подозрительные (а по факту любые) ссылки или когда на несколько ящиков шлешь или когда просто три раза одно и то же шлешь
Bulat_Almukhametov Мастер (1160) 1 год назад
Делать это надо на бэк енде. Если ты на фронте это делаешь, то злоумышленники могут посмотреть твои логин\пароль для почты.
Можно, конечно, сделать на javascript, если это nodejs и будет запускаться на сервере. Хотя ты же делаешь регистрацию, значит серверная часть для доступа к базе должна быть.
Марка ПочтоваяУченик (118) 1 год назад
серверная часть есть. как отправить?
Bulat_Almukhametov Мастер (1160) Марка Почтовая, ну так надо описать на чем серверная часть, откуда ты хочешь отправить email. Если у тебя серверная часть на nodejs, и ты используешь express. То сначала устанавливаешь модуль для отправки email, в командной строке или терминале вводишь:
 npm install nodemailer 
Потом в обработчика маршрута своём, где у тебя регистрация, используешь этот модуль:
Bulat_AlmukhametovМастер (1160) 1 год назад
 const express = require('express');  
const nodemailer = require('nodemailer');

const app = express();

app.post('/signup', function (req, res) {
// ... твой код регистрации

const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'youremail@gmail.com',
pass: 'yourpassword'
}
});

const mailOptions = {
from: 'youremail@gmail.com',
to: 'myfriend@yahoo.com',
subject: 'Sending Email using Node.js',
text: 'That was easy!'
};

transporter.sendMail(mailOptions);

});
Марка Почтовая Ученик (118) Bulat_Almukhametov, такая ошибка при отправке письма: Error: Invalid login: 535 Domain is missing TXT verification record похоже, бесплатно не получится
Bulat_AlmukhametovМастер (1160) 1 год назад
Ты данные своего почтового ящика прописал или просто из примера используешь? (отправитель и получатель)

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