#c# #asp.net-mvc #html-email #sendgrid #email-attachments
Вопрос:
Наше приложение будет отправлять электронные письма клиентам по различным событиям. В этих письмах есть заполнитель, где нам нужно отобразить рекламный баннер. Маркетинговая команда просит нас сделать это максимально динамичным. Это означает, что будет общий URL-адрес, и команда будет менять изображение в этом URL-адресе каждый месяц, когда появляется новая акция.
Теперь мое требование, скажем, 01 декабря 2021 года, маркетинговая команда обновила новое изображение в этом URL-адресе.
- Теперь все мои электронные письма, которые будут отправлены после 01 декабря 2021 года, должны иметь это новое изображение.
- Кроме того, все электронные письма, которые уже отправлены клиенту до 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"/>