Как установить X-Entity-Ref-ID на значение? (Относительно предотвращения рассылки писем)
Я занимаюсь разработкой сайта с использованием ASP.net. Там я запускаю несколько писем пользователю. Probelem - все письма группируются ( Threading). Я хочу остановить это.
Я нашел сообщение об этом на
Заставьте электронные письма не группироваться в разговоры
Там говорится
установить заголовок X-Entity-Ref-ID (значение не требуется). Это то, что делают уведомления в Google+.
измените адрес электронной почты отправителя (вы можете использовать From: info+randomstring@example.com). Это то, что уведомления в Facebook
делать.
Я не думаю, что вторая идея - хорошая вещь. Но я хочу попробовать первое. Как это сделать? Где я могу найти этот атрибут?
1 ответ
Я использую пакет Nuget Postal для отправки электронных писем в HTML и текстовом форматах. Для этого есть заголовочный файл электронной почты (содержащий "from" и "to" info). Добавление X-Entity-Ref-ID: HeaderId
где HeaderId является guid, к этому файлу (до From:
а также To:
параметры) работает. Присвойте X-Entity-Ref-ID уникальное ссылочное значение, а не значение.
Возможно, вы не пользуетесь почтой, но этот подход может работать и для других пакетов.
В контроллере:
var emailModel = new EmailModel()
{
To = user.UserName, // user is your User entity
// Text replacement to stop Gmail showing mailto tag
UserName = user.UserName.Replace("@", "<span>@</span>").Replace(".", "<span>.</span>"),
// HeaderId to insert a guid into X-Entity-Ref-ID header to prevent Gmail threading
HeaderId = new Guid()
};
emailModel.Send();
а затем в заголовочном файле электронной почты:
X-Entity-Ref-ID: @Model.HeaderId // This assigns a unique value
To: @Model.To
From: ThisCo <noreply@thisco.com>
Subject: The Email Subject
Views: Text, Html
с EmailModel, определенной как:
public class SignupLinkEmail : Email // inheriting from the nuget Postal Email class
{
public string To { get; set; }
public string UserName { get; set; }
public Guid HeaderId { get; set; }
// other things ..
}