Как избежать автоматического удаления разрыва строки в Outlook? - PullRequest
0 голосов
/ 27 июня 2019

Я использую nodemailer для отправки электронных писем как часть моего микросервиса, я получил жалобу от клиента о том, как outlook автоматически удаляет разрывы строк из основного текста.Я не могу решить эту проблему путем переконфигурирования outlook, потому что это должно быть сделано для бесчисленных клиентов.

Я изучил использование ключа "html" вместо ключа "text" в объекте mailOptions, чтоне работает.

короткий пример:

    const decodedInnerBody = iconv.decode(Buffer.from(innerBody, 'base64'),'iso-8859-8') 


    const request = {

        mailOptions: {

            from: from,

            to: to,

            bcc: bcc,

            cc: cc,

            subject: subject,

            text: decodedInnerBody,

            attachedZipName: attachedZipName

        },

        documents: []

    }

, а затем:

            this.transporter.sendMail(mailOptions).then(res => {
                logger.info(`E-mail successfuly sent from ${mailOptions.from} to ${mailOptions.to}. - ${transactionId}`, {});
                return resolve(res);
            }).catch(err => {
                logger.error(`E-mail failed to send from ${mailOptions.from} to ${mailOptions.to}. - ${transactionId}`, {});
                return reject(err);
            })

Тело моего письма извлекается из файла XML и затем преобразуется из base64 вмоя необходимая кодировка (iso-8859-8), кажется, правильно сохраняет все разрывы строк, но иногда Outlook позволяет себе удалить эти разрывы строк.Я хочу настроить nodemailer так, чтобы он всегда сохранял все переводы строк.Можно ли это сделать?Кроме того, если кто-то знает наверняка, что это не может быть сделано без изменения конфигурации Outlook, то также дайте мне знать, пожалуйста.Спасибо.

1 Ответ

0 голосов
/ 28 июня 2019

Попробуйте создать сообщения, содержащие как обычный текст, так и части MIME в формате HTML.

...