Как указано в документации , функция mail.send_mail
принимает аргумент 'attachments', который должен представлять собой список из двух кортежей, представляющий собой имя файла и содержимое файла, который нужно прикрепить. Вы можете получить содержимое из StringIO, позвонив по нему .get_value()
.
Что касается размера, исходящие сообщения ограничены 10 МБ. Если ваш CSV-файл больше этого, то да, у вас возникнут проблемы. Если вы можете, сожмите его с помощью gzip или zipfile перед отправкой.