Как я могу изменить изображение в URL-адресе и при этом убедиться, что отправленные старые электронные письма не затронуты?

#c# #asp.net-mvc #html-email #sendgrid #email-attachments

Вопрос:

Наше приложение будет отправлять электронные письма клиентам по различным событиям. В этих письмах есть заполнитель, где нам нужно отобразить рекламный баннер. Маркетинговая команда просит нас сделать это максимально динамичным. Это означает, что будет общий URL-адрес, и команда будет менять изображение в этом URL-адресе каждый месяц, когда появляется новая акция.

Теперь мое требование, скажем, 01 декабря 2021 года, маркетинговая команда обновила новое изображение в этом URL-адресе.

  1. Теперь все мои электронные письма, которые будут отправлены после 01 декабря 2021 года, должны иметь это новое изображение.
  2. Кроме того, все электронные письма, которые уже отправлены клиенту до 01 декабря 2021 года (до 30 ноября 2021 года), не должны быть затронуты, и если клиент откроет их, он все равно увидит только старое изображение.

(Примечание: Как новые, так и старые электронные письма будут иметь один и тот же URL-адрес ИЗОБРАЖЕНИЯ, но будет изменено только изображение в этом URL-адресе). Все наши приложения являются приложениями .NET.

Комментарии:

1. Два письма с одним и тем же URL-адресом, показывающим другое изображение? Это невозможно. Вам нужен другой URL-адрес для каждого события.

2. Неужели нет никаких возможных способов? например, скопировать изображение в электронную почту или что-то в этом роде? Кроме того, поэтому старые изображения должны быть всегда в СТАРОМ URL-адресе IIMAGE, чтобы у клиентов, которые уже получили это электронное письмо ранее, не возникало никаких проблем ?

3. Если вы вставляете фиксированное автономное изображение, очевидно, что оно не может быть изменено. Если вы вставите фиксированный URL-адрес во внешнее изображение и измените изображение, оно изменится. Из вашего вопроса у меня сложилось впечатление, что вы вставляли URL-адрес в электронное письмо.

4. Нет смысла отправлять электронные письма со встроенными URL-адресами изображений; вероятно, теперь это универсально, поскольку клиенты не будут их загружать, потому что они используются спамерами для отслеживания того, кто открыл электронное письмо. Перепишите свой код, чтобы извлечь изображение из URL-адреса и вставить его в исходящее электронное письмо. Это значительно увеличит размер каждого электронного письма и даже увеличит изображение до 4/3 от его первоначального размера из-за кодировки base64.. поэтому я рекомендую также сжать изображение или ввести некоторые ограничения в источнике, потому что, если маркетологи добьются своего, все получат логотипы компании размером 10 мегабайт 4K..

5. Неприятность в том, что существует несколько различных способов встраивания изображений (например, закодированная составная форма, встроенный b64 в src= атрибут), а поддержка в почтовых клиентах не является универсальной. Если вы хотите сохранить маршрут URL-адреса, вам придется использовать другой URL-адрес для каждой кампании, что поможет URL-адресам выглядеть еще более спамными и поможет еще большему количеству ваших писем запускать фильтры нежелательной почты.. Хорошего решения этой проблемы нет; спамеры все испортили, я за всех. Вы могли бы подумать о том, чтобы не отправлять информационные бюллетени по электронной почте(кто их читает?);размещайте свои кампании на страницах после входа в систему, чтобы вы могли ориентироваться на пользователей, которые действительно входят в систему

Ответ №1:

Евангелист-разработчик Twilio SendGrid здесь.

Как сказали Ник и Кай в комментариях, вы не можете достичь этого с помощью одного URL-адреса. Если вы измените изображение за URL-адресом, то старые электронные письма, использующие этот URL-адрес, будут обновляться с новым изображением при их открытии.

Вместо этого вы должны либо использовать разные URL-адреса каждый раз. Или, как указывает Кай, встроенные URL-адреса изображений могут не загружаться. Таким образом, вы также можете прикрепить изображение к электронному письму и вставить его. Встраивание базы 64 полезно, но оно увеличивает размер электронной почты, особенно если оно увеличивает размер самого изображения.

Лично я предпочитаю добавлять изображения в качестве вложений, а затем встраивать их в контент, ссылаясь на них с помощью CID или Content-ID. Подробная информация о том, как это сделать, содержится в этом посте о встраивании изображений в электронные письма. Но идея заключается в том, что вы даете вложению cid атрибут, а затем в своем HTML ссылаетесь на этот идентификатор cid в src атрибуте img тега:

 <img src="cid:myimagecid"/>