使用环回电子邮件连接器发送电子邮件
Sending emails using loopback email connector
我正在尝试使用 loopback-email-connector
发送电子邮件。我想设置 2 个电子邮件帐户。我正在 datasources.json
.
中执行以下操作
"emails": {
"name": "emails",
"connector": "mail",
"transports": [
{
"type": "smtp",
"host": "smtp.yandex.com",
"secure": true,
"port": 465,
"tls": {
"rejectUnauthorized": false
},
"auth": {
"user": "a1@abc.com",
"pass": "password"
}
},
{
"type": "smtp",
"host": "smtp.yandex.com",
"secure": true,
"port": 465,
"tls": {
"rejectUnauthorized": false
},
"auth": {
"user": "a2@abc.com",
"pass": "password"
}
}
]
}
在上述情况下,我添加了 2 个电子邮件帐户 - a1@abc.com
和 a2@abc.com
。
要发送电子邮件,我正在执行以下操作:
app.models.Email.send({
to: 'foo@bar.com',
from: 'a1@abc.com',
subject: 'my subject',
text: 'my text',
html: 'my <em>html</em>'
}, function(err, mail) {
console.log('email sent!');
cb(err);
});
邮件发送成功。但是如果我使用来自电子邮件的 a2@abc.com
,它就不起作用。我收到以下错误:
Error: Mail command failed: 553 5.7.1 Sender address rejected: not owned by auth user.
但如果我移动,a2@abc.com
作为 datasources.json 中的第一封电子邮件,它会起作用。
事实上,只有 datasources.json
中排在第一位的电子邮件才有效,第二个无效。在这种情况下我如何设置多个电子邮件 ID?
邮件服务器拒绝您的电子邮件,因为您尝试发送的邮件与您的电子邮件选项不符。
只需尝试使用您的邮件 a2@abc.com
更新 a1@abc.com
,如下所示:-
app.models.Email.send({
to: 'foo@bar.com',
from: 'a2@abc.com',
subject: 'my subject',
text: 'my text',
html: 'my <em>html</em>'
}, function(err, mail) {
console.log('email sent!');
cb(err);
});
您必须在传输配置和 "from-to" 电子邮件中保留相同的电子邮件 ID。
请完成以下步骤:
1) 创建 2 个不同的数据源,使用不同的名称并为每个数据源添加一个 emailId。您已经创建了一个数据源,从中删除一个 emailId 并附加到另一个。
2)通过命令lb model
创建一个新模型(Ex. TestMail),设置一个你想附加的用于发送邮件的数据源。
3)现在你有两个模型,一个 Email
和另一个 TestMail
,现在只需使用 send()
和你需要的邮件模型。
这对我有用!
我找到了一种不涉及为每封电子邮件创建多个数据源的方法。
设置 alias
为每个传输分配一个别名,可以在发送电子邮件时使用。针对以上问题,我们可以做如下操作:
"emails": {
"name": "emails",
"connector": "mail",
"transports": [
{
"type": "smtp",
"host": "smtp.yandex.com",
"secure": true,
"port": 465,
"alias": "a1",
"tls": {
"rejectUnauthorized": false
},
"auth": {
"user": "a1@abc.com",
"pass": "password"
}
},
{
"type": "smtp",
"host": "smtp.yandex.com",
"secure": true,
"port": 465,
"alias": "a2",
"tls": {
"rejectUnauthorized": false
},
"auth": {
"user": "a2@abc.com",
"pass": "password"
}
}
]
}
如上设置alias
后,发送邮件,我们可以使用alias
作为传输。
app.models.Email.send({
to: 'foo@bar.com',
from: 'a1@abc.com',
subject: 'my subject',
text: 'my text',
html: 'my <em>html</em>',
transport: "a1"
}, function(err, mail) {
console.log('email sent!');
cb(err);
});
在上面的示例中,我设置了 a1
别名,并通过将传输设置为 a1
来发送电子邮件。这很好用。
我正在尝试使用 loopback-email-connector
发送电子邮件。我想设置 2 个电子邮件帐户。我正在 datasources.json
.
"emails": {
"name": "emails",
"connector": "mail",
"transports": [
{
"type": "smtp",
"host": "smtp.yandex.com",
"secure": true,
"port": 465,
"tls": {
"rejectUnauthorized": false
},
"auth": {
"user": "a1@abc.com",
"pass": "password"
}
},
{
"type": "smtp",
"host": "smtp.yandex.com",
"secure": true,
"port": 465,
"tls": {
"rejectUnauthorized": false
},
"auth": {
"user": "a2@abc.com",
"pass": "password"
}
}
]
}
在上述情况下,我添加了 2 个电子邮件帐户 - a1@abc.com
和 a2@abc.com
。
要发送电子邮件,我正在执行以下操作:
app.models.Email.send({
to: 'foo@bar.com',
from: 'a1@abc.com',
subject: 'my subject',
text: 'my text',
html: 'my <em>html</em>'
}, function(err, mail) {
console.log('email sent!');
cb(err);
});
邮件发送成功。但是如果我使用来自电子邮件的 a2@abc.com
,它就不起作用。我收到以下错误:
Error: Mail command failed: 553 5.7.1 Sender address rejected: not owned by auth user.
但如果我移动,a2@abc.com
作为 datasources.json 中的第一封电子邮件,它会起作用。
事实上,只有 datasources.json
中排在第一位的电子邮件才有效,第二个无效。在这种情况下我如何设置多个电子邮件 ID?
邮件服务器拒绝您的电子邮件,因为您尝试发送的邮件与您的电子邮件选项不符。
只需尝试使用您的邮件 a2@abc.com
更新 a1@abc.com
,如下所示:-
app.models.Email.send({
to: 'foo@bar.com',
from: 'a2@abc.com',
subject: 'my subject',
text: 'my text',
html: 'my <em>html</em>'
}, function(err, mail) {
console.log('email sent!');
cb(err);
});
您必须在传输配置和 "from-to" 电子邮件中保留相同的电子邮件 ID。
请完成以下步骤:
1) 创建 2 个不同的数据源,使用不同的名称并为每个数据源添加一个 emailId。您已经创建了一个数据源,从中删除一个 emailId 并附加到另一个。
2)通过命令lb model
创建一个新模型(Ex. TestMail),设置一个你想附加的用于发送邮件的数据源。
3)现在你有两个模型,一个 Email
和另一个 TestMail
,现在只需使用 send()
和你需要的邮件模型。
这对我有用!
我找到了一种不涉及为每封电子邮件创建多个数据源的方法。
设置 alias
为每个传输分配一个别名,可以在发送电子邮件时使用。针对以上问题,我们可以做如下操作:
"emails": {
"name": "emails",
"connector": "mail",
"transports": [
{
"type": "smtp",
"host": "smtp.yandex.com",
"secure": true,
"port": 465,
"alias": "a1",
"tls": {
"rejectUnauthorized": false
},
"auth": {
"user": "a1@abc.com",
"pass": "password"
}
},
{
"type": "smtp",
"host": "smtp.yandex.com",
"secure": true,
"port": 465,
"alias": "a2",
"tls": {
"rejectUnauthorized": false
},
"auth": {
"user": "a2@abc.com",
"pass": "password"
}
}
]
}
如上设置alias
后,发送邮件,我们可以使用alias
作为传输。
app.models.Email.send({
to: 'foo@bar.com',
from: 'a1@abc.com',
subject: 'my subject',
text: 'my text',
html: 'my <em>html</em>',
transport: "a1"
}, function(err, mail) {
console.log('email sent!');
cb(err);
});
在上面的示例中,我设置了 a1
别名,并通过将传输设置为 a1
来发送电子邮件。这很好用。