Отправка листа Excel по электронной почте в Python - PullRequest
0 голосов
/ 17 мая 2010

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

Я только начал программировать 8 месяцев назад, так что я довольно новый. Я делал несколько проектов, чтобы стать лучше. Проект, над которым я сейчас работаю, создает лист Excel из введенных данных. Это на Python, который я только начал изучать пару недель назад. Я пытаюсь вставить часть этого листа Excel в электронное письмо, отправленное с моего школьного адреса. Я часами искал это, но безрезультатно.

Есть две проблемы, с которыми я прошу помощи:

1) Следующий код работает для отправки электронной почты из GMail, но не для моей школьной учетной записи. К сожалению, у меня возникла проблема с настройкой исходящей электронной почты для этой учетной записи на моем iPhone. Это может быть связано? Кто-нибудь может понять, почему этот код не работает?

import smtplib
from email.MIMEText import MIMEText

LOGIN = 'myemailaddress'
PASSWORD = 'mypassword'


def send_email(subject, message, from_addr=LOGIN, to_addr=LOGIN):
    msg = MIMEText(message)
    msg['Subject'] = subject
    msg['From'] = from_addr
    msg['To'] = to_addr

    server = smtplib.SMTP('myhost',465)
    server.ehlo()
    server.starttls()
    server.ehlo()
    server.login(LOGIN,PASSWORD)
    server.sendmail(from_addr, to_addr, msg.as_string())
    server.close()


if __name__=="__main__":
    send_email('test', 'This is a test email', "myemailaddress", "myemailaddress")

2) В Excel есть возможность сохранить лист в формате HTML. При этом я копирую и вставляю исходный код HTML и отправляю по электронной почте как вложение К сожалению, цветной текст не перенесен. Кто-нибудь знает, как лучше использовать Python для отправки листа Excel, встроенного в электронное письмо?

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 24 октября 2012

Требуется больше информации для определения фактической ошибки. Чтобы добиться этого, включите ведение журнала отладки для модуля smtplib, это можно сделать, добавив следующую строку перед ehlo ().

server.set_debuglevel(True)

Если myhost является почтовым сервером школы, то, скорее всего, проблема заключается в том, что школьный почтовый сервер не прослушивает порт 465. Если myhost является почтовым сервером Google, то, скорее всего, школьный порт заблокировал порт 465 (SMTPS) ,

Изучите, как нетекстовые файлы и контент включаются в электронную почту (т.е. вложения MIME). Если вы хотите прикрепить html к электронному письму, но если целью является просто отправить электронную таблицу Excel, то присоедините электронную таблицу - нет необходимости преобразовывать ее в HTML. Вот сообщение StackOverflow о коде для этого: Как отправлять вложения электронной почты с Python

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...