如何解码电子邮件正文?

问题描述

我最近尝试使用imaplib获取wordpress电子邮件验证链接,但该消息有点歪斜,无法获取解码,我尝试了html unescape,但没有成功,任何人都可以帮助我如何解码和获取来自此收到的html编码正文的验证链接,这是我收到的链接:

b'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.=\r\nw3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">=0A<html xmlns=3D"http://www.=\r\nw3.org/1999/xhtml"><head><!-- If you delete this tag,the sky will fall on =\r\nyour head --><meta name=3D"viewport" content=3D"width=3Ddevice-width"><meta=\r\n http-equiv=3D"Content-Type" content=3D"text/html; charset=3DUTF-8"><title>=\r\nWordPress.com</title><!--[if lt mso 12]>=0A      <style type=3D"text/css">=\r\n=0A.outlook-hide-pre-2007 {=0A  height:0 !important;=0A  max-height:0 !impo=\r\nrtant; /* Gmail*/=0A  display:none !important; /* Generic*/=0A  mso-hide:al=\r\nl !important; /* Outlook clients*/=0A  overflow:hidden !important; /* Gener=\r\nic */=0A  font-size:0 !important; /* Be careful with this one,only use if =\r\nabsolutely required */=0A}=0Ah1,h2,h3,h4 {=0A  margin: 0 !important;=0A  pa=\r\ndding: 0 !important;=0A}=0Atable.footer tr td.top {=0A  height: 40px !impor=\r\ntant;=0A}=0Ap.btn-calltoaction {=0A  margin-top: 0 !important;=0A  margin-b=\r\nottom: 0 !important;=0A}=0A</style>=0A    <![endif]--><!--[if (gte mso 9)|(=\r\nIE)]>=0A      <style type=3D"text/css">=0Abody,.body-wrap {=0A  font-size:=\r\n 1em !important;=0A  text-align: center !important;=0A}=0Ah1,h4 {=0A =\r\n margin: 0 0 1em !important;=0A}=0Ah1 {=0A  margin-top: 0 !important;=0A  m=\r\nargin-bottom: 2em !important;=0A  font-size: 1.5em !important;=0A}=0Ah2 {=\r\n=0A  font-size: 1.125em !important;=0A  margin-top: 1em !important;=0A  mar=\r\ngin-bottom: 1em !important;=0A}=0Ah5 {=0A  font-size: 1em !important;=0A}=\r\n=0Ah1,h2 {=0A  font-weight: bold !important;=0A}=0Ap,ul,ol {=0A  font-si=\r\nze: 1.125em !important;=0A  margin-bottom: 1em !important;=0A}=0A.container=\r\n {=0A  width: 40em !important;=0A  text-align: left !important;=0A}=0A.cont=\r\nent-mc-region {=0A  margin-bottom: 2.5em !important;=0A }=0A.content-mc-reg=\r\nion p,=0A.content-mc-region ul,=0A.content-mc-region ol {=0A  font-size: 1.=\r\n125em !important;=0A}=0A.content-mc-region ol,=0A.content-mc-region ul {=0A=\r\n  padding-right: 0;=0A  padding-top: 0;=0A}=0A.content-mc-region ol {=0A  p=\r\nadding-left: 25px;=0A}=0Aol,ul {=0A  margin: 0 0 0 1.5em !important;=0A  p=\r\nadding: 0 !important;=0A  list-style-position: inside !important;=0A}=0Ali =\r\n{=0A  padding-left: 0=0A  margin-left: 0 !important;=0A  margin-bottom: 0.5=\r\nem !important;=0A}=0Ap.btn-calltoaction {=0A  margin-top: 2.5em !important;=\r\n=0A  margin-bottom: 2.5em !important;=0A}=0A.btn-calltoaction a {=0A  borde=\r\nr: solid 0.375em #03AADC !important;=0A  padding: 0 !important;=0A}=0Atd.av=\r\natar {=0A  padding-top: 1.25em !important;=0A  padding-right: 1.25em !impor=\r\ntant;=0A  padding-bottom: 1.25em !important;=0A}=0Atd.banner {=0A  padding-=\r\nbottom: 2.25em !important;=0A}=0A.app-download {=0A  border: 0 !important;=\r\n=0A  background-color: transparent !important;=0A}=0A.app-download td {=0A =\r\n padding: 0 !important;=0A}=0A.extra-cta {=0A  padding: 0 !important;=0A}=\r\n=0Atable.footer tr td.top {=0A  padding-top: 1.4em !important;=0A}=0Atable.=\r\nfooter tr td.bottom {=0A  padding-bottom: 1.4em !important;=0A}=0Atable.foo=\r\nter tr td.tw,=0Atable.footer tr td.fb {=0A  padding: 0.875em !important;=0A=\r\n  padding-top: 0 !important;=0A}=0A.signature {=0A  margin-bottom: 2.25em !=\r\nimportant;=0A}=0A.signature td.text {=0A  text-align: left !important;=0A}=\r\n=0Atable.footer p a {=0A  color: #000000 !important;=0A}=0A.outlook-hide {=\r\n=0A  max-height:0 !important; /* Gmail*/=0A  display:none !important; /* Ge=\r\nneric*/=0A  mso-hide:all !important; /* Outlook clients*/=0A  overflow:hidd=\r\nen !important; /* Generic */=0A  font-size:0 !important; /* Be careful with=\r\n this one,only use if absolutely required */=0A}=0A</style>=0A    <![endif=\r\n]--></head><body bgcolor=3D"#FFFFFF" style=3D\'direction: ltr; margin: 0; pa=\r\ndding: 0; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: no=\r\nne; height: 100%; font-size: 1em; font-family: "HelveticaNeue-Light","Helv=\r\netica Neue Light","Segoe UI Light","Helvetica Neue","Segoe UI",Helvetic=\r\na,Arial,sans-serif; width: 100%; clear: both;\'>=0A    <div class=3D"prehe=\r\nader" style=3D"direction: ltr; font-size: 1px; color: #f3f6f8; line-height:=\r\n 1px; max-height: 0px; max-width: 0px; opacity: 0; overflow: hidden;">=0A  =\r\n    Howdy helloworld210820,Thank you for signing up with WordPress.com. Cl=\r\nick the button below to activate your account.    </div>=0A    <table class=\r\n=3D"body-wrap" cellspacing=3D"0" cellpadding=3D"0" style=3D\'border-collapse=\r\n: collapse; margin: 0; padding: 0; -webkit-font-smoothing: antialiased; -we=\r\nbkit-text-size-adjust: none; height: 100%; font-size: 1em; font-family: "He=\r\nlveticaNeue-Light","Helvetica Neue Light","Helvetica Ne=\r\nue",Helvetica,sans-serif; width: 100%; clear: both;\'><=\r\ntr><td style=3D\'border-collapse: collapse; font-family: "HelveticaNeue-Ligh=\r\nt",=\r\n Helvetica,sans-serif;\'>=0A=0A          <table class=3D"container" =\r\ncellspacing=3D"0" cellpadding=3D"0" style=3D"width: 100%; border-collapse: =\r\ncollapse; display: block; max-width: 600px; margin: 0 auto; clear: both;"><=\r\ntr><td style=3D\'border-collapse: collapse; font-family: "HelveticaNeue-Ligh=\r\nt",sans-serif;\'>=0A                <div class=3D"content" s=\r\ntyle=3D"direction: ltr; max-width: 600px; margin: 0 auto; display: block;">=\r\n=0A=0A                  <!-- Header -->=0A                  <table cellspac=\r\ning=3D"0" cellpadding=3D"0" class=3D"logo-wrap" style=3D"border-collapse: c=\r\nollapse; width: 100%;"><tr><td class=3D"center" style=3D\'border-collapse: c=\r\nollapse; font-family: "HelveticaNeue-Light","Segoe=\r\n UI Light",sans-serif; tex=\r\nt-align: center; padding: 2.25em;\'>=0A                        <img alt=3D"W=\r\nordPress.com" class=3D"logo" src=3D"https://s0.wp.com/wp-content/mu-plugins=\r\n/html-emails/themes/delta/images/logo.png" width=3D"50" height=3D"50" style=\r\n=3D"border: 0 none; height: auto; line-height: 100%; outline: none; text-de=\r\ncoration: none;"></td>=0A                    </tr></table><!-- /header --><=\r\n!-- Body --><div class=3D"content-mc-region" style=3D"direction: ltr; paddi=\r\nng: 0 20px;">=0A                                        <p style=3D\'directi=\r\non: ltr; font-family: "HelveticaNeue-Light",sans-serif; mar=\r\ngin: 0; color: #000000; font-weight: normal; line-height: 1.5; font-size: 1=\r\n8px; padding-bottom: 16px;\'></p>=0A                    <p style=3D\'directio=\r\nn: ltr; font-family: "HelveticaNeue-Light","Segoe =\r\nUI Light",sans-serif; marg=\r\nin: 0; color: #000000; font-weight: normal; line-height: 1.5; font-size: 18=\r\npx; padding-bottom: 16px;\'>Welcome to WordPress.com. Please click the butto=\r\nn below to confirm your email address and activate your account.</p>=0A    =\r\n                <p class=3D"outlook-hide-pre-2007" style=3D\'direction: ltr;=\r\n font-family: "HelveticaNeue-Light","Segoe UI Ligh=\r\nt",sans-serif; margin: 0; =\r\ncolor: #000000; font-weight: normal; line-height: 1.5; font-size: 18px; pad=\r\nding-bottom: 16px;\'></p>=0A                    <p class=3D"btn-calltoaction=\r\n" style=3D\'direction: ltr; font-family: "HelveticaNeue-Light","Helvetica N=\r\neue Light",Aria=\r\nl,sans-serif; margin: 0; color: #000000; font-weight: normal; line-height:=\r\n 1.5; font-size: 18px; padding: 24px 0; text-align: center; padding-bottom:=\r\n 16px;\'>=0A                      <a href=3D"https://public-api.wordpress.co=\r\nm/bar/?stat=3Dgroovemails-events&amp;bin=3Dwpcom_email_click&amp;redirect_t=\r\no=3Dhttps%3A%2F%2Fsignup.wordpress.com%2Factivate%2Fc77666e0b6369f8f&amp;sr=\r\n=3D1&amp;signature=3Dd2b25213512d7842aafd0a8961e8eea9&amp;user=3D192533658&=\r\namp;_e=3DeyJlcnJvciI6bnVsbCwiYmxvZ19pZCI6NTgzNjA4NiwiYmxvZ19sYW5nIjoiZW4iLC=\r\nJzaXRlX2lkX2xhYmVsIjoid3Bjb20iLCJfdWkiOjE5MjUzMzY1OCwibG9jYWxlIjoiZW4iLCJjd=\r\nXJyZW5jeSI6IklOUiIsImNvdW50cnlfY29kZV9zaWdudXAiOiJJTiIsImVtYWlsX2RvbWFpbiI6=\r\nImRhc2hnYS5jb20iLCJkYXRlX3NlbnQiOiIyMDIwLTA5LTA0IiwiZW1haWxfaWQiOiIxNzQwNTM=\r\n5NjhmY2Y3NDU1MzA1Yzc1MzI4MWIwYTNhMCIsImVtYWlsX25hbWUiOiJkZWx0YV9hY3RpdmF0aW=\r\n9uIiwiYW5jaG9yX3RleHQiOiJDb25maXJtIE5vdyIsIl9kciI6bnVsbCwiX2RsIjoiXC9yZXN0X=\r\nC92MS4xXC91c2Vyc1wvbmV3P2h0dHBfZW52ZWxvcGU9MSIsIl91dCI6IndwY29tOnVzZXJfaWQi=\r\nLCJfdWwiOiJoZWxsb3dvcmxkMjEwODIwIiwiX2VuIjoid3Bjb21fZW1haWxfY2xpY2siLCJfdHM=\r\niOjE1OTkyMDc1NDI5NTksImJyb3dzZXJfdHlwZSI6InBocC1hZ2VudCIsIl9hdWEiOiJ3cGNvbS=\r\n10cmFja3MtY2xpZW50LXYwLjMiLCJibG9nX3R6IjoiMCIsInVzZXJfbGFuZyI6ImVuIn0&amp;_=\r\nz=3Dz" style=3D\'font-family: "HelveticaNeue-Light",=\r\n "Segoe UI Light",sans-ser=\r\nif; background-color: #03AADC; border: solid 1px #0287BE; border-radius: 4p=\r\nx; border-bottom-width: 2px; padding: 10px 30px; font-size: 1.0em; min-widt=\r\nh: 180px; font-weight: 600; display: inline-block; text-decoration: none; c=\r\nolor: #FFFFFF;\'>Confirm Now</a>=0A                    </p>=0A              =\r\n      <p class=3D"outlook-hide-pre-2007" style=3D\'direction: ltr; font-fami=\r\nly: "HelveticaNeue-Light","Helve=\r\ntica Neue",sans-serif; margin: 0; color: #00=\r\n0000; font-weight: normal; line-height: 1.5; font-size: 18px; padding-botto=\r\nm: 16px;\'></p>=0A                    <p class=3D"outlook-hide-pre-2007" sty=\r\nle=3D\'direction: ltr; font-family: "HelveticaNeue-Light","Helvetica Neue L=\r\night",sa=\r\nns-serif; margin: 0; color: #000000; font-weight: normal; line-height: 1.5;=\r\n font-size: 18px; padding-bottom: 16px;\'></p>=0A                    <p styl=\r\ne=3D\'direction: ltr; font-family: "HelveticaNeue-Light","Helvetica Neue Li=\r\nght",san=\r\ns-serif; margin: 0; color: #000000; font-weight: normal; line-height: 1.5; =\r\nfont-size: 18px; padding-bottom: 16px;\'>Helpful reminder: At any time,log =\r\ninto your account with your username,<strong style=3D\'font-family: "Helvet=\r\nicaNeue-Light",=\r\n "Segoe UI",sans-serif;\'>helloworld210820</strong>,or y=\r\nour <strong style=3D\'font-family: "HelveticaNeue-Light",san=\r\ns-serif;\'>email address</strong>.</p>=0A                    <p class=3D"out=\r\nlook-hide-pre-2007" style=3D\'direction: ltr; font-family: "HelveticaNeue-Li=\r\nght","Segoe UI=\r\n",sans-serif; margin: 0; color: #000000; font-weight: no=\r\nrmal; line-height: 1.5; font-size: 18px; padding-bottom: 16px;\'></p>=0A    =\r\n                <p style=3D\'direction: ltr; font-family: "HelveticaNeue-Lig=\r\nht","Segoe UI"=\r\n,sans-serif; margin: 0; color: #000000; font-weight: nor=\r\nmal; line-height: 1.5; font-size: 18px; padding-bottom: 16px;\'></p>=0A=0A  =\r\n                  =0A                  </div>=0A=0A                  <!-- f=\r\nooter -->=0A                  <table class=3D"footer" cellspacing=3D"0" cel=\r\nlpadding=3D"0" style=3D"border-collapse: collapse; line-height: 1.6em; back=\r\nground-color: #F4F4F4; border-top: solid 1px #E6E6E6; width: 100%;"><tr><td=\r\n align=3D"center" colspan=3D"2" class=3D"top" style=3D\'border-collapse: col=\r\nlapse; font-family: "HelveticaNeue-Light","Segoe U=\r\nI Light",sans-serif; paddi=\r\nng: 0 20px; padding-top: 1.4em;\'></td>=0A                    </tr><tr><td a=\r\nlign=3D"right" class=3D"tw" style=3D\'border-collapse: collapse; font-family=\r\n: "HelveticaNeue-Light","Helveti=\r\nca Neue",sans-serif; padding: 0 20px; paddin=\r\ng-bottom: 1.4em;\'>=0A                        <a href=3D"https://twitter.com=\r\n/wordpressdotcom" style=3D\'text-decoration: underline; font-family: "Helvet=\r\nicaNeue-Light",sans-serif; color: #2BA6CB;\'>=0A            =\r\n              <img alt=3D"@wordpressdotcom" width=3D"40" height=3D"40" src=\r\n=3D"https://s0.wp.com/wp-content/mu-plugins/html-emails/themes/delta/images=\r\n/twitter.png" style=3D"height: auto; line-height: 100%; outline: none; text=\r\n-decoration: none; border: 0 none;"></a>=0A                      </td>=0A  =\r\n                    <td align=3D"left" class=3D"fb" style=3D\'border-collaps=\r\ne: collapse; font-family: "HelveticaNeue-Light","S=\r\negoe UI Light",sans-serif;=\r\n padding: 0 20px; padding-bottom: 1.4em;\'>=0A                        <a hre=\r\nf=3D"https://www.facebook.com/WordPresscom" style=3D\'text-decoration: under=\r\nline; font-family: "HelveticaNeue-Light","Segoe UI=\r\n Light",sans-serif; color:=\r\n #2BA6CB;\'>=0A                          <img alt=3D"WordPresscom" width=3D"=\r\n40" height=3D"40" src=3D"https://s0.wp.com/wp-content/mu-plugins/html-email=\r\ns/themes/delta/images/facebook.png" style=3D"height: auto; line-height: 100=\r\n%; outline: none; text-decoration: none; border: 0 none;"></a>=0A          =\r\n            </td>=0A                    </tr><tr><td align=3D"center" colsp=\r\nan=3D"2" class=3D"bottom" style=3D\'border-collapse: collapse; font-family: =\r\n"HelveticaNeue-Light","Helvetica=\r\n Neue",sans-serif; padding: 0 20px; padding-=\r\nbottom: 1.4em;\'>=0A                        <p style=3D\'direction: ltr; font=\r\n-family: "HelveticaNeue-Light","=\r\nHelvetica Neue",sans-serif; margin: 0; color=\r\n: #000000; font-weight: normal; line-height: 1.5; padding-bottom: 16px; fon=\r\nt-size: 14px;\'>From your pals at WordPress.com<br>60 29th St. #343,San Fra=\r\nncisco,CA,94110</p>=0A                      </td>=0A                    <=\r\n/tr></table><!-- /footer --></div>  <!-- /content -->=0A=0A              </=\r\ntd>=0A            </tr></table><!-- /container --></td>=0A      </tr></tabl=\r\ne><!-- /body-wrap --><img src=3D"http://pixel.wp.com/t.gif?_ui=3D192533658&=\r\namp;locale=3Den&amp;currency=3DINR&amp;country_code_signup=3DIN&amp;email_d=\r\nomain=3Ddashga.com&amp;blog_id=3D5836086&amp;date_sent=3D2020-09-04&amp;ema=\r\nil_id=3D174053968fcf7455305c753281b0a3a0&amp;email_name=3Ddelta_activation&=\r\namp;_en=3Dwpcom_email_open&amp;browser_type=3Dphp-agent&amp;_aua=3Dwpcom-tr=\r\nacks-client-v0.3&amp;_ul=3Dhelloworld210820&amp;_ut=3Dwpcom%3Auser_id&amp;b=\r\nlog_tz=3D0&amp;blog_lang=3Den&amp;user_lang=3Den&amp;_ts=3D1599207542942" s=\r\ntyle=3D"border: 0 none; height: auto; line-height: 100%; outline: none; tex=\r\nt-decoration: none;"></body></html>=0A\r\n'),b')']

这是我尝试获取电子邮件的代码:

username = "helloworld210820"
status,email_ids = M.search(None,f'TO "myemail@gmail.com" SUBJECT "Activate {username}" FROM "donotreply@wordpress.com"')
for num in email_ids[0].split():
    tmp,email_ids = M.fetch(num,'(RFC822.TEXT.PEEK)')

解决方法

问题已通过外部 python 库解决 - imap_tools

pip install imap_tools

文档:https://github.com/ikvk/imap_tools

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...