Мое требование - отправить электронное письмо с уведомлением из моего приложения на любой идентификатор электронной почты, например: адрес gmail. Я прошел через некоторые модули, такие как smtp-server, smtp-connection и emailjsКак создать собственный smtp-сервер для отправки уведомлений по электронной почте в Nodejs?
Это то, что у меня есть до сих пор.
var SMTPServer = require('smtp-server').SMTPServer
var server = new SMTPServer({
name: 'testDomain.com',
authOptional: true,
onAuth: function (auth, session, callback) {
callback(null, {user: 'sample-user'})
}
})
server.on('error', function (err) {
console.log('Error %s', err.message)
})
var port = 1234
server.listen(port, function() {
console.log('SERVER: Listening on port: ' + port)
var opts = {
host: '127.0.0.1',
port: port,
username: 'testUser',
password: 'testUser123',
to: '[email protected]'
}
sendEmail(opts,function (err, message) {
server.close()
})
})
где sendEmail - это функция, использующая emailjs.
function sendEmail(opts,callback) {
var server = email.server.connect({
user: opts.username || '',
password: opts.password || '',
host: opts.host,
ssl: false
})
server.send({
text: 'i hope this works',
from: 'you <'+opts.username+'@testDomain.com>',
to: ' <'+opts.to+'>',
subject: 'testing emailjs'
}, function (err, message) {
console.log(err || message);
callback(err, message)
})
}
Но, похоже, клиент не может подключиться к серверу. Он висит.
Я попытался SMTP-подключение, как это первоначально:
var connection = new SMTPConnection({
port: port,
host: '127.0.0.1',
ignoreTLS: true
})
connection.connect(function() {
var envelope = {
from: opts.username+'@testDomain.com',
to: opts.to
}
var message = "Hello!!!"
connection.send(envelope, message, function(err,message){
callback(err,message)
connection.quit()
})
Это похоже на работу, но дает этот выход
response: '250 OK: message queued'
документация SMTP-соединение говорит, что это только очереди сообщения не делает доставить его получатель.
Как я могу достичь своего требования? Я пытаюсь отправить уведомление с настраиваемого почтового сервера, потому что я хочу избежать добавления учетных данных пользователя учетной записи электронной почты в код в виде открытого текста. Я ищу простой почтовый сервер, который можно развернуть, когда уведомление нужно отправить, а затем закрыть.
Я полностью отключаю, не понимая, как работают почтовые серверы? Пожалуйста, дайте некоторые отзывы и лучший подход для решения этой проблемы.