LINUX.ORG.RU

История изменений

Исправление noname_user, (текущая версия) :

from email.parser import BytesParser, Parser
from email.policy import default
import mailbox

for message in mailbox.mbox('/var/mail/mailbot'):
	headers = Parser(policy=default).parsestr(message)

	#  Now the header items can be accessed as a dictionary:
	print('To: {}'.format(headers['to']))
	print('From: {}'.format(headers['from']))
	print('Subject: {}'.format(headers['subject']))

	# You can also access the parts of the addresses:
	print('Recipient username: {}'.format(headers['to'].addresses[0].username))
	print('Sender name: {}'.format(headers['from'].addresses[0].display_name))

Вылазит эксепт:

TypeError: initial_value must be str or None, not mboxMessage

UPDATE:
Решил так: str(message)
Осталасб проблема с получением body письма, собственно каким образом ?

Исправление noname_user, :

from email.parser import BytesParser, Parser
from email.policy import default
import mailbox

for message in mailbox.mbox('/var/mail/mailbot'):
	headers = Parser(policy=default).parsestr(message)

	#  Now the header items can be accessed as a dictionary:
	print('To: {}'.format(headers['to']))
	print('From: {}'.format(headers['from']))
	print('Subject: {}'.format(headers['subject']))

	# You can also access the parts of the addresses:
	print('Recipient username: {}'.format(headers['to'].addresses[0].username))
	print('Sender name: {}'.format(headers['from'].addresses[0].display_name))

Вылазит эксепт:

TypeError: initial_value must be str or None, not mboxMessage

UPDATE:
Решил так: str(message)

Исходная версия noname_user, :

from email.parser import BytesParser, Parser
from email.policy import default
import mailbox

for message in mailbox.mbox('/var/mail/mailbot'):
	headers = Parser(policy=default).parsestr(message)

	#  Now the header items can be accessed as a dictionary:
	print('To: {}'.format(headers['to']))
	print('From: {}'.format(headers['from']))
	print('Subject: {}'.format(headers['subject']))

	# You can also access the parts of the addresses:
	print('Recipient username: {}'.format(headers['to'].addresses[0].username))
	print('Sender name: {}'.format(headers['from'].addresses[0].display_name))

Вылазит эксепт:

TypeError: initial_value must be str or None, not mboxMessage