我写了这段代码
import urllib.request
import smtplib
import re
htmlweb = urllib.request.urlopen('url goes here')
htmltext = htmlweb.read().decode('utf-8')
regex = '<h2 itemprop="name">(.+?)</h2>'
regex2 = '<div class="mediaPageName">(.+?)</div>'
pattern = re.compile(regex)
pattern2 = re.compile(regex2)
username = re.findall(pattern, htmltext)
interests = re.findall(pattern2, htmltext)
content = "The person's name is: "
i=0
ii=0
while i<len(username):
content += username[i]
i += 1
content += "\nTheir interests are: "
while ii<len(interests):
content += interests[ii] + ", "
ii += 1
#-----------------------------------------------
mail = smtplib.SMTP("smtp.gmail.com", 587)
mail.ehlo()
mail.starttls()
mail.login('email here', 'password here')
mail.sendmail('email here', 'here too', content)
mail.close()
然而,当我运行它时,我会收到一个无体电子邮件。内容变量打印出我想要的控制台,但不打印给电子邮件正文。
对不起,如果这是微不足道的;这是我第一次尝试使用Python。
谢谢!
答案 0 :(得分:4)
以下问题:smtplib sends blank message if the message contain certain characters,指出您必须使用新行开始邮件的内容,否则内容将成为邮件标题的一部分,而不是邮件的标题&#39;身体。
我相信你必须改变:
content = "The person's name is: "
对此:
content = "\nThe person's name is: "