免费自己制作网站教程面膜网站广告怎么做

张小明 2026/1/9 17:36:59
免费自己制作网站教程,面膜网站广告怎么做,wordpress前台注册地址,百度学术论文查重免费检测邮箱客户端实现 该Python代码实现了一个2925.com邮箱客户端类#xff0c;主要功能包括#xff1a; 发送邮件#xff1a; 支持纯文本和HTML格式邮件 使用SMTP_SSL协议通过465端口发送 包含发件人、收件人和主题设置 接收邮件#xff1a; 通过IMAP4_SSL协议从993端口获取 提供…邮箱客户端实现 该Python代码实现了一个2925.com邮箱客户端类主要功能包括 发送邮件 支持纯文本和HTML格式邮件 使用SMTP_SSL协议通过465端口发送 包含发件人、收件人和主题设置 接收邮件 通过IMAP4_SSL协议从993端口获取 提供两种获取方式UID命令更可靠和序号获取备用 解析邮件主题、发件人、日期和正文内容 支持限制获取邮件数量 其他特性 邮件正文预览功能截取前200字符 完善的错误处理和日志输出 支持中文字符解码 该客户端类封装了完整的importsmtplibimportimaplibimportemailfromemail.mime.textimportMIMETextfromemail.mime.multipartimportMIMEMultipartfromemail.headerimportdecode_headerimportosclassEmailClient2925:def__init__(self,email_address,password): 初始化2925.com邮箱客户端 参数 email_address: 邮箱地址 password: 邮箱密码 self.email_addressemail_address self.passwordpassword# 2925.com服务器配置self.smtp_serversmtp.2925.comself.smtp_port465# SSL端口 465self.imap_serverimap.2925.comself.imap_port993defsend_email(self,to_email,subject,body,is_htmlFalse): 发送邮件 参数 to_email: 收件人邮箱 subject: 邮件主题 body: 邮件正文 is_html: 是否为HTML格式 try:# 创建邮件msgMIMEMultipart()msg[From]self.email_address msg[To]to_email msg[Subject]subject# 添加邮件正文ifis_html:msg.attach(MIMEText(body,html))else:msg.attach(MIMEText(body,plain))# 连接SMTP服务器并发送print(f正在连接到SMTP服务器:{self.smtp_server}:{self.smtp_port})# 使用SSL连接serversmtplib.SMTP_SSL(self.smtp_server,self.smtp_port)server.login(self.email_address,self.password)server.send_message(msg)server.quit()print(f邮件发送成功收件人:{to_email})returnTrueexceptExceptionase:print(f发送邮件失败:{str(e)})returnFalsedefreceive_emails(self,limit10): 接收邮件 - 改进版本使用UID命令避免SEARCH命令问题 参数 limit: 最多获取的邮件数量 emails[]try:print(f正在连接到IMAP服务器:{self.imap_server}:{self.imap_port})# 连接到IMAP服务器mailimaplib.IMAP4_SSL(self.imap_server,self.imap_port)mail.login(self.email_address,self.password)# 选择收件箱status,select_infomail.select(INBOX)ifstatus!OK:print(f选择收件箱失败:{select_info})return[]# 获取邮件总数total_msgsint(select_info[0].decode())print(f收件箱中共有{total_msgs}封邮件)iftotal_msgs0:print(收件箱为空)mail.logout()return[]# 方法1: 使用UID命令获取邮件更可靠print(尝试使用UID命令获取邮件...)# 先获取所有邮件的UIDstatus,uid_datamail.uid(SEARCH,None,ALL)ifstatus!OKornotuid_data[0]:print(UID SEARCH失败尝试方法2...)# 方法2: 直接按序号获取邮件returnself._receive_by_sequence(mail,total_msgs,limit)# 获取UID列表uidsuid_data[0].split()print(f找到{len(uids)}封邮件的UID)# 反转列表获取最新的邮件uidsuids[::-1]# 限制获取数量uidsuids[:limit]fori,uidinenumerate(uids):try:# 使用UID获取邮件status,msg_datamail.uid(FETCH,uid,(RFC822))ifstatusOKandmsg_data[0]isnotNone:# 解析邮件ifisinstance(msg_data[0],tuple):raw_emailmsg_data[0][1]else:raw_emailmsg_data[0]msgemail.message_from_bytes(raw_email)# 解码主题subject无主题ifmsg[Subject]:subject_infodecode_header(msg[Subject])[0]subject_textsubject_info[0]encodingsubject_info[1]ifisinstance(subject_text,bytes):subjectsubject_text.decode(encodingifencodingelseutf-8,errorsignore)else:subjectstr(subject_text)# 获取发件人from_msg.get(From,未知发件人)# 获取日期date_msg.get(Date,未知日期)# 获取邮件正文bodyself._extract_email_body(msg)emails.append({id:i1,uid:uid.decode(),subject:subject,from:from_,date:date_,body:body,body_preview:body[:200]...iflen(body)200elsebody})print(f邮件{i1}:)print(f UID:{uid.decode()})print(f 主题:{subject})print(f 发件人:{from_})print(f 日期:{date_})print(f 预览:{body[:100]}...)print(-*50)else:print(f获取邮件UID{uid}失败)exceptExceptionase:print(f处理邮件UID{uid}时出错:{str(e)})continue# 关闭连接mail.close()mail.logout()exceptimaplib.IMAP4.errorase:print(fIMAP协议错误:{str(e)})# 如果UID命令也失败尝试最基本的FETCH方法returnself._try_basic_fetch()exceptExceptionase:print(f接收邮件失败:{str(e)})returnemailsdef_receive_by_sequence(self,mail,total_msgs,limit):方法2: 按序号直接获取邮件emails[]# 计算起始和结束位置startmax(1,total_msgs-limit1)forseq_numinrange(total_msgs,start-1,-1):try:status,msg_datamail.fetch(str(seq_num).encode(),(RFC822))ifstatusOKandmsg_data[0]isnotNone:ifisinstance(msg_data[0],tuple):raw_emailmsg_data[0][1]else:raw_emailmsg_data[0]msgemail.message_from_bytes(raw_email)# 解码主题subject无主题ifmsg[Subject]:subject_infodecode_header(msg[Subject])[0]subject_textsubject_info[0]encodingsubject_info[1]ifisinstance(subject_text,bytes):subjectsubject_text.decode(encodingifencodingelseutf-8,errorsignore)else:subjectstr(subject_text)# 获取邮件正文bodyself._extract_email_body(msg)emails.append({id:total_msgs-seq_num1,seq:seq_num,subject:subject,from:msg.get(From,未知发件人),date:msg.get(Date,未知日期),body_preview:body[:200]...iflen(body)200elsebody})print(f邮件{total_msgs-seq_num1}(序号:{seq_num}):{subject})exceptExceptionase:print(f处理邮件序号{seq_num}时出错:{str(e)})continuemail.logout()returnemailsdef_extract_email_body(self,msg):提取邮件正文内容bodyifmsg.is_multipart():forpartinmsg.walk():content_typepart.get_content_type()content_dispositionstr(part.get(Content-Disposition))# 跳过附件ifattachmentincontent_disposition:continueifcontent_typein[text/plain,text/html]:try:body_bytespart.get_payload(decodeTrue)ifbody_bytes:charsetpart.get_content_charset()orutf-8try:bodybody_bytes.decode(charset,errorsignore)except:bodybody_bytes.decode(utf-8,errorsignore)else:bodypart.get_payload()except:bodypart.get_payload()# 优先使用纯文本正文ifcontent_typetext/plainandbody.strip():breakelse:try:body_bytesmsg.get_payload(decodeTrue)ifbody_bytes:charsetmsg.get_content_charset()orutf-8try:bodybody_bytes.decode(charset,errorsignore)except:bodybody_bytes.decode(utf-8,errorsignore)else:bodymsg.get_payload()except:bodymsg.get_payload()returnbodydef_try_basic_fetch(self):方法3: 尝试最基本的连接和获取try:print(尝试最基本的邮件获取方法...)mailimaplib.IMAP4_SSL(self.imap_server,self.imap_port)mail.login(self.email_address,self.password)# 直接尝试获取第一封邮件mail.select(INBOX)status,msg_datamail.fetch(1,(RFC822))ifstatusOK:print(成功获取到第一封邮件)# 这里可以添加解析代码else:print(连最基本的FETCH也失败了)mail.logout()exceptExceptionase:print(f基本方法也失败:{str(e)})return[]defcheck_connection(self):测试服务器连接print(正在测试SMTP连接...)try:serversmtplib.SMTP_SSL(self.smtp_server,self.smtp_port)server.login(self.email_address,self.password)server.quit()print(SMTP连接成功)exceptExceptionase:print(fSMTP连接失败:{str(e)})print(\n正在测试IMAP连接...)try:mailimaplib.IMAP4_SSL(self.imap_server,self.imap_port)mail.login(self.email_address,self.password)# 测试是否能选择收件箱status,infomail.select(INBOX)ifstatusOK:print(fIMAP连接成功收件箱邮件数:{info[0].decode()})else:print(fIMAP登录成功但选择收件箱失败:{info})mail.logout()exceptExceptionase:print(fIMAP连接失败:{str(e)})deftestSend1():list_[第一个,第二个,第三个,第四个,]print(\n发送测试邮件...)foriinrange(200):client.send_email(to_emaillaocooonqq.com,# 替换为实际收件人subjectlist_[i%len(list_)],测试邮件,body这是一封来自2925.com的测试邮件。)# 使用示例if__name____main__:# 您的邮箱信息EMAIL_ADDRESSxxxxxxEMAIL_PASSWORDxxxxx# 创建邮箱客户端clientEmailClient2925(EMAIL_ADDRESS,EMAIL_PASSWORD)# 测试连接client.check_connection()# 发送邮件示例# testSend1()print(\n发送测试邮件...)client.send_email(to_emailxxxxxxx.xx,# 替换为实际收件人subject测试邮件,body这是一封来自xxx.com的测试邮件。)# 接收邮件示例print(\n接收最新邮件...)emailsclient.receive_emails(limit10)ifemails:print(emails)print(f共收到{len(emails)}封邮件)else:print(没有收到邮件)
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站所需的主要功能wordpress 轮播图插件下载

Android模糊效果终极指南:3分钟让你的应用界面质感倍增 【免费下载链接】BlurView Android blur view 项目地址: https://gitcode.com/gh_mirrors/blu/BlurView 还在为Android应用界面缺乏层次感而烦恼吗?想让你的应用拥有iOS那样优雅的毛玻璃效果…

张小明 2026/1/6 19:04:40 网站建设

广州展厅设计seo交流

为什么你的SSD1306屏幕“失联”?一文搞懂IC地址与应答机制你有没有遇到过这种情况:接好SSD1306 OLED屏,烧录代码,串口打印“I2C扫描无设备”,屏幕一片漆黑?别急着换板子。这个问题90%的根源不在程序&#x…

张小明 2026/1/6 18:27:28 网站建设

一个公司可以有两个网站吗网店详情页设计

想要在电商网站上快速集成专业的用户评分和评论功能吗?Start Bootstrap模板库提供了完整的前端解决方案,让你在30分钟内就能搭建出媲美大型电商平台的评价体系。这个开源项目包含数十种精心设计的Bootstrap模板,特别适合技术新手和需要快速交…

张小明 2026/1/6 20:53:38 网站建设

手机网站进不去怎么办长沙游戏推广

目录已开发项目效果实现截图开发技术介绍核心代码参考示例1.建立用户稀疏矩阵,用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度系统测试总结源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!已开发项目效果…

张小明 2026/1/6 20:08:13 网站建设

淘宝客网站开发一个今天重庆新闻头条

想要让您的美的空调和除湿器摆脱云端束缚,实现真正的本地网络控制吗?Home Assistant Midea Air Appliances LAN集成正是您需要的解决方案!这个强大的自定义组件让您能够直接在局域网内控制美的设备,无需依赖互联网连接&#xff0c…

张小明 2026/1/6 22:22:14 网站建设

我电脑做网站局域网怎么访问网站项目开发流程

GPT-SoVITS:从1分钟语音到高保真克隆的演进之路 在虚拟主播动辄百万粉丝、AI配音席卷短视频平台的今天,一个令人好奇的问题浮现出来:普通人是否也能拥有属于自己的“数字声音”?过去,这需要录音棚级设备和数小时的专业…

张小明 2026/1/7 23:17:20 网站建设