如何使用NodeJs aws-sdk更改电子邮件发件人名称

6

我正在使用aws-sdk for Nodejs发送邮件,代码如下:

const params = {
    Destination: {
        ToAddresses: [... ],
    },
    Message: {
        Body: {
            Html: {
                Data: `...`,
                Charset: 'utf-8'
            },
        },
        Subject: {
            Data: `...`,
            Charset: 'utf-8'
        }
    },
    Source: 'support@mydomain.com',
    ReturnPath: 'support@mydomain.com',
};
awsConfig.ses.sendEmail(params, (err, data))

在Gmail中,收到的电子邮件看起来是这样的: received email 但是,我想知道如何更改这个名称: 目前发送者的名称是“support”,因为发送者的电子邮件地址是“support@mydomain.com”。但我想将其替换为以下公司名称,例如“GitHub”。 感谢您提前的帮助!

3
很多时候,API 会使用标准化的库。因此,它很可能只是像原始电子邮件格式中一样简单的 '支持名称 <support@mydomain.com>'。请注意,我已经尽力保持忠实于原文意思但也让内容更易懂,如有翻译不当之处请您谅解并指出。 - Neil Lunn
我应该在“ReturnPath”中使用相同的值吗? - Florian Ludewig
我这么假设。这是SMTP的标准格式,因此基本上在使用中,它“应该”是有意义的,因为它可能会直接传递到生成的SMTP消息中。不确定是否有文档确认这一点,但逻辑表明这是一个相当可靠的测试,直到证明其他。 - Neil Lunn
1
是的。已记录。全部符合RFC822标准; https://docs.aws.amazon.com/ses/latest/DeveloperGuide/header-fields.html - Neil Lunn
2个回答

11

这是我最终采取的做法: 我在参数中将Source属性设置为

'CompanyName <support@mydomain.com>'

感谢 @Neil Lunn


非常感谢您指出这个问题!我在AWS / SES文档中没有发现这个问题。现在它已经完美地解决了。 - KevinY

-1
你可以使用这个语法。
// Load the AWS SDK for Node.js
var AWS = require('aws-sdk');
// Set the region 
AWS.config.update({region: 'REGION'});

// Create sendEmail params 
var params = {
  Destination: { /* required */
    CcAddresses: [
      'EMAIL_ADDRESS',
      /* more items */
    ],
    ToAddresses: [
      'EMAIL_ADDRESS',
      /* more items */
    ]
  },
  Message: { /* required */
    Body: { /* required */
      Html: {
       Charset: "UTF-8",
       Data: "HTML_FORMAT_BODY"
      },
      Text: {
       Charset: "UTF-8",
       Data: "TEXT_FORMAT_BODY"
      }
     },
     Subject: {
      Charset: 'UTF-8',
      Data: 'Test email'
     }
    },
  Source: 'SENDER_EMAIL_ADDRESS', /* required */
  ReplyToAddresses: [
      'EMAIL_ADDRESS',
    /* more items */
  ],
};       

// Create the promise and SES service object
var sendPromise = new AWS.SES({apiVersion: '2010-12-01'}).sendEmail(params).promise();

// Handle promise's fulfilled/rejected states
sendPromise.then(
  function(data) {
    console.log(data.MessageId);
  }).catch(
    function(err) {
    console.error(err, err.stack);
  });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接