Как инкапсулировать файлы изображений в электронные письма? - PullRequest
1 голос
/ 26 января 2010

Может кто-нибудь объяснить мне, как создать «простое» электронное письмо со встроенными файлами изображений? Я знаю, что есть много RFC, которые объясняют это, но мне не удалось это сделать. Я должен построить основной текст письма программно, без использования каких-либо рамок. Не спрашивайте меня об используемом языке ...

Изображения в кодировке base64. Content-Type: Multipart / related; граница = "Граница-пример-1", тип = Текст / HTML

Если на каком-то веб-сайте, который я не нашел, есть «читабельное» объяснение того, как это сделать, я буду рад услышать об этом.

Pierre

1 Ответ

4 голосов
/ 27 января 2010

Есть тонны RFC, потому что это не так просто.

Для встраивания изображений и / или вложений в сообщение электронной почты создан формат MIME.

MIME на самом деле является древовидной структурой:

+-multipart/mixed
  +-multipart/related
  | +-multipart/alternative
  | |  +-text/plain
  | |  +-text/html
  | +-image/gif
  | +-image/jpeg
  +-application/x-zip-compressed
  +-application/x-zip-compressed

Каждый объект MIME состоит из одной или нескольких частей. Части разделяются с помощью ограничителя границы.

составная / смешанная - используется, когда части не связаны (обычная электронная почта с приложениями)

multipart / related - используется, когда парс связан. Например, электронная почта HTML, содержащая изображения, используемые этим HTML. (Протокол Cid используется в HTML:)

несколько частей / альтернатива - указывает, что части содержат одинаковое содержимое, но в разных представлениях. Например, один и тот же текст в формате doc, html и обычный текст.

  1. Итак, сначала вам нужно построить правильную структуру MIME,
  2. затем кодируйте все части MIME, используя соответствующие кодировки (Base64, QuotedPrintable),
  3. добавить правильные заголовки для всех частей,
  4. кодируйте их, если они содержат национальные или специальные символы,
  5. назначить границы
  6. и, наконец, вывести все сообщение

Суть , эта проблема уже решена . На большинстве языков есть библиотеки для создания и отправки электронных писем.

.NET Framework имеет один, не идеальный, но все же, вероятно, он лучше того, что вы создадите.

Вы также можете проверить коммерческие продукты, такие как компонент электронной почты Mail.dll , если вам нужен больший контроль над тем, как выглядит электронная почта.

...