def createright(self): """构建右侧最近三小时房源信息面板""" self.rightframe = Frame(self) self.five_hours_sources = StringVar() self.newestinfolabel = LabelFrame(self.rightframe, text='最近五小时房源', borderwidth=5) self.newestinfolabel.config(width=400, height=650) self.newestinfolabel.pack_propagate(False) self.newestinfolabel.config(labelanchor=NW) self.newestinfolabel.grid(row=1, column=0, rowspan=2) self._newest_data = newest_sources_within_five_hours = getlastthreehoursinfo( ) for index, i in enumerate(newest_sources_within_five_hours): # 索引为1的发送,这里只是简单测试 # if index == 1: # self.email_server.sendmail(self.email_sender.from_addr, self.all_sendaddr, self.email_sender.create_html(i).as_string()) # 这里可能会因为又见一次发送过多程序终止(MI:DMC) label = HyperLinkLabel(self.newestinfolabel, text=i.description, link=get_domain(i)[0]) self.labels.append(label) label.pack() self.rightframe.grid(row=0, column=0, columnspan=2)
def __init__(self, *args, **kwargs): root = Tk.__init__(self, *args, **kwargs) self.frame = RefreshableLabelFrame(root) self.frame.pack() labels = [] newest_sources_within_five_hours = getnewestinfo() for index, i in enumerate(newest_sources_within_five_hours): label = HyperLinkLabel(self.frame.interior, text=i.description, link=get_domain(i)[0]) labels.append(label) labels[-1].pack()
def create_html(self, content, *args): """ 网页形式 msg:邮件主题 content:要发送的邮件内容 """ message = MIMEMultipart( "related" ) # 作为消息的一个大容器,这个MIMEMultipart中第一个attach的MIMEMultipart必须为alternative类型的 message['From'] = Header('Hello <%s>' % (self.from_addr), 'gb2312') message['To'] = Header('To <%s>' % (self.to_addr), 'gb2312') message['Subject'] = Header('来自%s最新房源消息' % (get_domain(content)[1]), 'utf-8') message.preamble = 'This is preamble of multipart message' # 讲plain(纯文本)、HTML格式的消息放到_subtype为"alternative"类型的消息体中 # 这样消息代理就知道要展示那些内容了 message_alternative = MIMEMultipart('alternative') message.attach(message_alternative) html_message = '''<html> <body> <h1>最新房源</h1> <div><a href="{link}">{description}(点击查看)</a><p>价格: {price}万</p></div> <div><p style="color:red">位置:{location}</p><p>更新时间: {last_update}</p></div> </body> </html>'''.format(link=get_domain(content)[0], description=content.description, price=content.price, location=content.location, last_update=content.sourcetime) print(get_domain(content)[0]) message_html = MIMEText(html_message, 'html', 'utf-8') message_alternative.attach(message_html) return message
def destroy_and_repaint(self): result = self.check_refreshdata() if result: for label in self.newestinfolabel.winfo_children(): label.destroy() self.labels.clear() newest_sources_within_five_hours = getlastthreehoursinfo() for index, i in enumerate(newest_sources_within_five_hours): # 索引为1的发送,这里只是简单测试 # if index == 1: # self.email_server.sendmail(self.email_sender.from_addr, self.all_sendaddr, self.email_sender.create_html(i).as_string()) # 这里可能会因为又见一次发送过多程序终止(MI:DMC) label = HyperLinkLabel(self.newestinfolabel, text=i.description, link=get_domain(i)[0]) self.labels.append(label) label.pack()