Введение
Часто мне приходят письма из службы технической поддержки и они меня сильно раздражают такими фразами“Это письмо сгенерировано автоматически, при последующих обращениях указывайте в теме письма номер тикета xxx-1977”. По моему это бред. Сегодня мой коллега столкнулся с этой проблемой, как передать информацию в письме? После работы я посидел покурил RFC И решение пришло
Немного стандартов
http://tools.ietf.org/html/rfc822 собственно это наше все, уникальный заголовок письма описывается в 4.6.1. MESSAGE-ID / RESENT-MESSAGE-ID это нам и нужно. В вольном переводе:
Данный заголовок должен представлять из себя уникальную строку формируемую сервером при ее отсутствии либо клиентом (Бинго!!!). Смотри дальше видим заголовки
4.6.2. IN-REPLY-TO
4.6.3. REFERENCES
Конечно они опциональные, но таки нормальные клиенты их ставят (Бинго!!!)
Сам код
этот код стандартный C#, но я думаю на любом другом ЯП можно с легкостью его повторить
using (var client = new SmtpClient()) using(var message = new MailMessage("test@ya.ru",model.To,model.Subject,model.Body)) { int requestId = 1977; var messageid = string.Format("<{0}_{1}>", Guid.NewGuid().ToString("D"), requestId); message.Headers.Add("Message-ID", messageid); client.Send(message); }
Комментариев нет:
Отправить комментарий