为什么我不能使用AWS开发工具包sendEmail发送到多个地址?

时间:2020-01-17 20:06:50

标签: javascript amazon-web-services aws-sdk amazon-ses

我开始在我们的应用程序中实施AWS开发工具包以发送电子邮件。我通过AWS增加了限制,以退出沙箱,以便可以开始向其他人发送电子邮件。我注意到的问题是,如果我的recipient变量中有多个地址,则会出现此错误:Illegal Address。这两个电子邮件地址的格式均为name@domain.com。我已经测试过分别发送到每封电子邮件,并且都可以正常工作,但是一旦将两个地址都放入收件人变量中,我就会收到Illegal Address错误。我唯一的假设是有多个收件人导致此问题,但是如果这是问题所在,为什么他们的文档中说可以包含多个地址?

这是我的代码

if ((request.url).substring(0, 5) == "/send") {

        var mailOptions = {
            to: request.query.to,
            bcc: request.query.bcc,
            subject: request.query.subject,
            text: request.query.text
        }

        console.log(mailOptions.to);

        AWS.config.update({
            accessKeyId: env.AWS.ACCESS_KEY,
            secretAccessKey: env.AWS.SECRET_ACCESS_KEY,
            region: 'someregion'
        });

        const sender = "noreply@domain.com";
        const recipient = mailOptions.to; // this includes "name@domain.com, name2@domain.com"
        const subject = mailOptions.subject;
        const body_html = mailOptions.text;
        const charset = "UTF-8";

        const ses = new AWS.SES();
        var params = { 
            Source: sender, 
            Destination: { 
              ToAddresses: [
                recipient
              ],
              BccAddresses: [
                sender
              ],
            },
            Message: {
              Subject: {
                Data: subject,
                Charset: charset
              },
              Body: {
                Html: {
                  Data: body_html,
                  Charset: charset
                }
              }
            }
          };

          ses.sendEmail(params, function(err, data) {
            // If something goes wrong, print an error message.
            if(err) {
              console.log(err.message);
            } else {
              console.log("Email sent! Message ID: ", data.MessageId);
            }
          });

如果有人知道为什么会这样并且知道我需要做些什么来解决它,我将不胜感激!谢谢。

0 个答案:

没有答案