Я знаю, что каждая часть многостраничного сообщения электронной почты может быть сама по себе. Являются ли вложения добавлены только как части верхнего уровня, или они могут быть также в многопоточном гнезде?Могут ли вложения быть вложенными в MIME?
Например, здесь attachment1.doc
вложен, а attachment2.doc
будет частью верхнего уровня.
multipart/mixed |---Title: text/plain |---Text content: text/plain |---Nested multipart: multipart/mixed | |--- attachment1.doc (BASE64) |---attachment2.doc (BASE64)
Я спрашиваю, потому что я встретил этот код из https://stackoverflow.com/a/27556667/492336:
# Iterate the different parts of the multipart message.
for part in msg.walk():
# Skip any nested multipart.
if part.get_content_maintype() == 'multipart':
continue
Это в Python, и они перебирать различные части сообщения для поиска вложений, но пропустить любую часть, сама по себе является многочастной.
Правильно ли это сделать? Я пробовал читать RFC3501, но не смог найти ничего определенного, говоря, могут ли вложения файлов быть или нет вложенными.
Не зависит от клиентского приложения электронной почты, которое использовалось для составления сообщения? В этом случае поведение Thunderbird, Outlook и GMail должно охватывать 99% случаев ... Возможно, существует стандарт де-фактора, который знает. Единственные файлы, которые я нашел до сих пор, которые были вложены, были изображениями, предназначенными для отображения в самом электронном письме. О, спасибо за ответ! – sashoalm
Перспектива может быть очень распространенной, но адаптация к ее поведению - это не то, что я делал бы беззаботно. К сожалению, Thunderbird и Gmail также демонстрируют полное игнорирование стандартов в некоторых местах. Если вы хотите охватить распространенные случаи, возможно, добавьте Apple Mail.app в свой список. – tripleee