Как отправить ссылку на localhost с помощью Sendgrid и Node.js

Я хочу отправлять электронные письма с помощью sendgrid и node.js для добавления функции проверки электронной почты. Я установил шаблон транзакции на панели инструментов sendgrid, но я не знаю, как вставить URL-адрес в свой html (внутренне я знаю, что они используют для этого ручки). Шаблон выглядит так (только важная часть):

шаблон

<a target='_blank' href="{{verificationLink}}" class='link2' style="color:#474747">Verify Email Address</a>

Я добавил {{verificationLink}} для динамической опоры, и мой запрос узла выглядит так:

Код Node.js

public async sendEmailVerificationLink(data: any) {
    const {firstName, email} = data;
    const token = Math.random().toString(36).substr(2);
    const message: MailData = {
        from: EmailCreator.EMAIL_FROM,
        personalizations: [{
            to: [{
                email,
            }],
            dynamicTemplateData: {
                "firstName": firstName,
                "verificationLink": `http://localhost:4200/verify-email?token=${token}`
            },
        }],
        templateId: 'd-8ca7682e287d47428c351e7854d98567'
    };

    return sendgridMail.send(message);
}

Но когда я получаю письмо, ссылка выглядит так:

введите здесь описание изображения


person MarcoLe    schedule 14.12.2019    source источник


Ответы (1)


Особенностью sendgrid является отслеживание переходов по ссылкам, которые вы вставляете в свои сообщения. Этот длинный URL-адрес является средством отслеживания кликов: он пересылается с их сервера на ваш.

Для проверки электронной почты вам не нужно такое отслеживание. Когда я делаю подобные вещи с sendgrid, я не использую их функцию шаблонов, а просто форматирую сообщение в своей программе, прежде чем сказать sendgrid, что нужно отправить его дословно.

Вы также можете сказать ему, что не хотите отслеживать эту ссылку или весь шаблон. Я не знаю, как это сделать, извини.

person O. Jones    schedule 14.12.2019