使用Python在SSL中通过电子邮件发送Excel表格

时间:2010-05-17 02:11:04

标签: python excel email ssl

这是我的第一篇文章,请告诉我是否有任何我应该了解的常见礼节。

我刚开始编程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 :(得分:0)

需要更多信息来确定实际错误。要获得此功能,请打开smtplib模块的调试日志记录,您可以通过在ehlo()之前添加以下行来完成此操作。

server.set_debuglevel(True)

如果myhost是学校的邮件服务器,那么问题很可能是学校邮件服务器没有在端口465上侦听。如果myhost是Google的邮件服务器,则很可能是学校网络阻止了端口465(SMTPS) 。

研究如何将非文本文件和内容包含在电子邮件中(即MIME附件)。如果您想要将html附加到电子邮件中,但是如果目的只是发送Excel电子表格然后附加电子表格 - 则无需将其转换为HTML。 以下是代码中的StackOverflow帖子:How to send email attachments with Python

相关问题