Есть тонны 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 и обычный текст.
- Итак, сначала вам нужно построить правильную структуру MIME,
- затем кодируйте все части MIME, используя соответствующие кодировки (Base64, QuotedPrintable),
- добавить правильные заголовки для всех частей,
- кодируйте их, если они содержат национальные или специальные символы,
- назначить границы
- и, наконец, вывести все сообщение
Суть , эта проблема уже решена . На большинстве языков есть библиотеки для создания и отправки электронных писем.
.NET Framework имеет один, не идеальный, но все же, вероятно, он лучше того, что вы создадите.
Вы также можете проверить коммерческие продукты, такие как компонент электронной почты Mail.dll , если вам нужен больший контроль над тем, как выглядит электронная почта.