smtp html文本,Python SMTP电子邮件显示纯文本和HTML版本

发送smtp电子邮件,当我收到电子邮件时,它会显示纯文本版本和背靠背的html版本.这一点是从Sendgrid接收传入的电子邮件dicts,然后将它们发送给另一个用户.代码中引用的"message"对象是dict Sendgrid发布到我的端点.

这是我所看到的:

test

Me

Signature

test

Me

Signature

这是我发送到mailServer的字符串:

Content-Type: multipart/mixed; boundary="===============5453410005537724489=="

MIME-Version: 1.0

To: me+test@domain.com

From: Me

Subject: test

reply-to: Original Sender

--===============5453410005537724489==

Content-Type: text/plain; charset="us-ascii"

MIME-Version: 1.0

Content-Transfer-Encoding: 7bit

test

Me

Signature

--===============5453410005537724489==

Content-Type: text/html; charset="us-ascii"

MIME-Version: 1.0

Content-Transfer-Encoding: 7bit

test

MeSignature

--===============5453410005537724489==--

最后,这是我用来发送电子邮件的Python:

import smtplib

from email.MIMEMultipart import MIMEMultipart

from email.MIMEText import MIMEText

subject = message.get('subject', 'No Subject')

text = message.get('text', None)

html = message.get('html', None)

to = message.get('to')

cc = message.get('cc', None)

reply_to = message.get('from')

msg = MIMEMultipart()

msg['To'] = 'me+test@domcin.com'

msg['From'] = 'me@domain.com'

msg['Subject'] = subject

msg.add_header('reply-to', reply_to)

toaddrs = msg['To']

if cc is not None:

msg['CC'] = ', '.join(cc)

toaddrs += ', ' + msg['CC']

if text is not None:

msg.attach(MIMEText(text[0].encode('ascii', 'ignore'), 'plain'))

else:

msg.attach(MIMEText('No plain text for this email', 'plain'))

if html is not None:

msg.attach(MIMEText(html[0].encode('ascii', 'ignore'), 'html'))

mailServer = smtplib.SMTP("smtp.gmail.com", 587)

mailServer.ehlo()

mailServer.starttls()

mailServer.ehlo()

mailServer.login(GMAIL_USERNAME, GMAIL_PASSWORD)

mailServer.sendmail(GMAIL_USERNAME, toaddrs, msg.as_string())

mailServer.quit()

我在这里错过了什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 非常感谢您的问题!我可以为您提供一些指导,但是我需要更多的信息来回答您的问题。您需要一个邮件接收系统来接收电子邮件吗?您需要使用Python编写邮件接收系统吗?如果是这样,您需要使用哪个Python库来实现这个功能?如果您能提供更多的细节,我将非常乐意为您提供帮助。 ### 回答2: 可以使用HTMLPython来写一个简单的邮件接收系统。 首先,在HTML中创建一个表单,包含输入框用于输入邮件地址和密码,以及一个提交按钮。 然后,使用Python编写一个后端程序来处理表单提交的数据。可以使用Python的内置库(如smtplib)来连接到邮件服务器,并验证用户的登录信息。 一旦用户提交表单,Python程序就会获取用户输入的邮件地址和密码。接下来,可以使用Pythonsmtplib库来连接到邮件服务器,并使用用户提供的登录信息进行验证。 成功验证后,可以使用IMAP或POP3协议来读取用户的邮件Python的imaplib或poplib库可以用来连接到邮件服务器,并检索用户的新邮件。 一旦获取到新邮件,就可以在HTML页面上显示出来。可以使用Python的email库来解析邮件内容,并提取出发件人、主题和正文等信息。 最后,将解析后的邮件内容以HTML的形式呈现在页面上,用户就可以在页面上直接阅读和处理新邮件了。 需要注意的是,使用Python来连接邮件服务器需要了解服务器的连接方式和验证规则。不同的邮件服务器可能有不同的设置要求,需要根据实际情况进行调整。 此外,还可以添加一些额外功能,如跳过垃圾邮件或标记已读邮件等。可以使用Python的过滤器或自然语言处理库来检测邮件内容,并根据用户的设置做出相应的操作。 综上所述,使用HTMLPython可以编写一个简单的邮件接收系统。HTML负责前端页面的展示,而Python则负责后端的数据处理和与邮件服务器的连接。 ### 回答3: 邮件接收系统是一个可以收取和管理电子邮件的应用程序。它利用HTMLPython编写,具有以下功能: 1. 用户界面:使用HTML和CSS创建一个用户友好的界面,包括登录页面和主页面。登录页面用于验证用户身份,并提供注册新用户的选项。主页面显示用户的收件箱和各种邮件管理选项。 2. 邮件接收:使用Pythonsmtplib库与SMTP服务器建立连接,并发送收件人、发件人、主题和内容等信息,从而实现邮件接收功能。邮件内容可以是文本HTML格式。 3. 收件箱管理:在用户登录后,可以查看和管理收件箱中的邮件。用户可以选择单个或多个邮件进行删除、标记为已读或未读,或将邮件移动到其他文件夹。使用HTML和CSS来格式化显示邮件列表,包括发件人、主题和日期等信息。 4. 邮件搜索:用户可以使用关键字搜索功能来搜索特定的邮件。在Python中,可以使用正则表达式来实现高级搜索功能,例如按发件人、主题、日期范围等搜索。 5. 文件夹管理:用户可以创建和管理不同的文件夹来组织邮件。使用HTML和CSS来显示文件夹列表,并在用户选择文件夹时显示该文件夹中的邮件。 6. 邮件过滤:可以使用Python的过滤功能来自动将特定类型的邮件移动到指定的文件夹。例如,将垃圾邮件自动移动到垃圾邮件文件夹,或将来自特定发件人的邮件自动移动到特定文件夹。 7. 邮件发送:用户可以使用系统来发送电子邮件。可以提供一个页面,用户可以输入收件人、主题和邮件内容,并使用Pythonsmtplib库将邮件发送到SMTP服务器。 总而言之,使用HTMLPython编写的邮件接收系统可以提供用户友好的界面,具有邮件接收、收件箱管理、邮件搜索、文件夹管理和邮件发送等功能。通过结合HTMLPython的功能,可以实现一个强大而实用的邮件系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值