Giter Site home page Giter Site logo

letters's Introduction

👋

I am a Tokyo-based (Permanent Resident) staff-plus engineer with 10+ years of experience in building highly performant distributed systems and tech leadership.

I maintain open-source Golang libraries:

  1. Letters, or how to parse emails in Go

and Python cookiecutters:

  1. Docker-Python-PDM
  2. Docker-Django-Postgres-Redis-Celery

If you work on systems using Japanese kanji characters, check out the Japanese K/Hanzi Writer Data repo as well.

I am currently working on bringing ActivityPub streams to static website generators like Hugo.

letters's People

Contributors

dependabot[bot] avatar mnako avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

letters's Issues

Feature request : big attachment vs concurrent parsing

Hi @mnako ,
good job, i have a question for a big problem that affects lot of mail parser projects, did you try to parse big attachments in a project that analyze message with concurrent jobs ?
I see that you used ioutil.ReadAll in all decoders function, this works well if you are going to parse file with 10Mb to 30Mb but if you try it with 50+ Mb file size this program will eat all the os resource.
I tried this way in a past project, garbage collector offered by golang is good but if you are going to parse concurrently ( 10 to 100 message per second ), it will kill your os.

I suggest you to implement a different way : https://kgrz.io/reading-files-in-go-an-overview.html

cannot parse To header, Panic when header contains a=40a

Email header:
To: =?utf-8?Q?a=40a?= <[email protected]>
code:

email, err := letters.ParseEmail(r)
if err != nil {
    log.Fatal(err)
}

Panic when header contains a=40a
output
letters.ParseEmail: cannot parse headers: letters.parsers.parseHeaders: cannot parse To header: letters.parsers.parseAddressListHeader: cannot parse address list header "=?utf-8?Q?a=40a?= <[email protected]>": mail: expected comma

mime decode test:

name := "=?utf-8?Q?=40?="
header, err := new(mime.WordDecoder).DecodeHeader(name)
if err != nil {
    panic(err)
}
fmt.Println(header)
// output: a@a

Bad cases: for some Chinese emails, got empty Text, and only HTML content

Code snippet:

ml "github.com/mnako/letters"

// ...

mm, err := ml.ParseEmail(strings.NewReader(raw1))
if err != nil {
	return &em, nil
}

var Text = mm.Text
var HTML = mm.HTML

Case 1

var raw1 = "Return-Path: <[email protected]>\r\nReceived: from ucmail37.sendcloud.io (ucmail37.sendcloud.io [117.50.64.15])\r\n by inbound-smtp.ap-northeast-1.amazonaws.com with SMTP id kq91blo7gf00741d5uk995g3aur021qnsm116b81\r\n for [email protected];\r\n Wed, 01 Nov 2023 06:39:20 +0000 (UTC)\r\nX-SES-Spam-Verdict: PASS\r\nX-SES-Virus-Verdict: PASS\r\nReceived-SPF: pass (spfCheck: domain of mailer.oschina.net designates 117.50.64.15 as permitted sender) client-ip=117.50.64.15; [email protected]; helo=ucmail37.sendcloud.io;\r\nAuthentication-Results: amazonses.com;\r\n spf=pass (spfCheck: domain of mailer.oschina.net designates 117.50.64.15 as permitted sender) client-ip=117.50.64.15; [email protected]; helo=ucmail37.sendcloud.io;\r\n dkim=pass [email protected];\r\n dmarc=pass header.from=mailer.oschina.net;\r\nX-SES-RECEIPT: AEFBQUFBQUFBQUFIdEl5UDFaN045ekpXVjkyZU1sU1VSbTBFSlZzZC9qM3FwSFZVT1F0MzVLSkh6dkJhL2RMQlA2MnNTbjZIV0JJcHY4YlE5c0FCeFhxOXFpYnNiYjhndm9YRk9JV1BoT3RXNFFxUGhSemtJMEtqN0JDWEY3Sjl3ZzZYdXhyeHFKZVBaSXhGS1BZRW1ScDQyVlY5MlBwa0ovMHc4bWtIUVZnOE9uQTF2MHpUMWpabW0rZGNUSXMrdFJCclI1VGh2YW1LMTVTU2x5ZmtlTzVaNFVRbDlqM3RwWW14V25LRUE5WWpmRERoY1JUNjk3QUpIWFRqNG1NM1J4Tk1jR0lSaFpCT2RqeUN6eG5Ga0llallmMFBaZnRIZHFrTHp3bEo0MlZ4MmM1bEtvQk42Zmc9PQ==\r\nX-SES-DKIM-SIGNATURE: a=rsa-sha256; q=dns/txt; b=XspAduvFgbeNlFk2KOJ2jXJMDKYj1zi6/XYmoRN+9kosuM3pTZX6OKwHJK2l+By4yprCqBsh7PbJZuupp2T9JXKGobxcJ0+r80KpIsXxvFZKI4CDSiOK1Uv5hg1AAuVtSuu9m0aJ7PxdPfSf0D7XWDtg9wziX6FXABqgEkJ0l2M=; c=relaxed/simple; s=zh4gjftm6etwoq6afzugpky45synznly; d=amazonses.com; t=1698820760; v=1; bh=rtf9us19PlRw7716l/1N3vhJK/RyJkCpmGB5FoHhAEc=; h=From:To:Cc:Bcc:Subject:Date:Message-ID:MIME-Version:Content-Type:X-SES-RECEIPT;\r\nDKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;\r\n d=mailer.oschina.net; [email protected]; q=dns/txt; s=mail;\r\n t=1698820759; h=date : from : to : message-id : subject : mime-version\r\n : content-type : content-transfer-encoding : reply-to :\r\n list-unsubscribe : from;\r\n bh=rtf9us19PlRw7716l/1N3vhJK/RyJkCpmGB5FoHhAEc=;\r\n b=e5W0L0KpX+kzzqefdbc9Sma64jwzfglZRIoiuUuo+VXU6tJtIEuaEb9bxzNySV512EzLd\r\n ZOnKnQEwoxSto3Ypz8t5zuiWNKkc8ss43/L/Ew+y0MKRo8Aw1aDdarFY9f+XyAEVri6zlEc\r\n UV3Qdl3r5CFEDgpI5iREMgeTDYulDlc=\r\nReceived: from git.oschina.net (Unknown [127.0.0.1])         by SendCloud Inbound Server with ESMTPSA id B7F524BB-A641-4A49-9768-8BDB0E737F94.1         envelope-from <[email protected]> (authenticated bits=0) (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256); Wed, 01 Nov 2023 14:39:18 +0800\r\nDate: Wed, 01 Nov 2023 14:39:18 +0800\r\nFrom: Gitee <[email protected]>\r\nTo: [email protected]\r\nMessage-ID: <1698820758880_42129_42192_1058.sc-10_9_40_164-inbound0@mailer.oschina.net>\r\nSubject: =?utf-8?b?R2l0ZWUgfCDmlrDlop7np4Hkurrku6TniYzmj5DphpI=?=\r\nMime-Version: 1.0\r\nContent-Type: text/html; charset=\"UTF-8\"\r\nContent-Transfer-Encoding: quoted-printable\r\nREPLY-TO: Gitee <[email protected]>\r\nX-SENDCLOUD-UUID: 1698820758880_42129_42192_1058.sc-10_9_40_164-inbound0$humaneva@techboy.io\r\nX-SENDCLOUD-LOG: 1698820758880_42129_42192_1058.sc-10_9_40_164-inbound0$humaneva@techboy.io#[email protected]#122268#42129#0#false#false#3#-1#\r\nX-SENDCLOUD-LOG-NEW: MTY5ODgyMDc1ODg4MF80MjEyOV80MjE5Ml8xMDU4LnNjLTEwXzlfNDBfMTY0LWluYm91bmQwJGh1bWFuZXZhQGdvcnVzdC50ZWNoI2h1bWFuZXZhQGdvcnVzdC50ZWNoIzEyMjI2OCM0MjEyOSMwI2ZhbHNlI2ZhbHNlIzMjLTEj\r\nList-Unsubscribe: <mailto:0_122268_1698820758880_42129_42192_1058.sc-10_9_40_164-inbound0@mailer.oschina.net>\r\n\r\n<html lang=3D'zh-CN'>\r\n<head>\r\n<meta content=3D'always' name=3D'referrer'>\r\n<meta content=3D'text/html; charset=3Dutf-8' http-equiv=3D'Content-Type'>\r\n<title>Gitee</title>\r\n<style>\r\n  .email-body {\r\n    color: #40485B;\r\n    font-size: 14px;\r\n    font-family: -apple-system, \"Helvetica Neue\", Helvetica, \"Nimbus Sans L=\r\n\", \"Segoe UI\", Arial, \"Liberation Sans\", \"PingFang SC\", \"Microsoft YaHei\", =\r\n\"Hiragino Sans GB\", \"Wenquanyi Micro Hei\", \"WenQuanYi Zen Hei\", \"ST Heiti\",=\r\n SimHei, \"WenQuanYi Zen Hei Sharp\", sans-serif;\r\n    background: #f8f8f8; }\r\n =20\r\n  .pull-right {\r\n    float: right; }\r\n =20\r\n  a {\r\n    color: #FE7300;\r\n    text-decoration: underline; }\r\n    a:hover {\r\n      color: #fe9d4c; }\r\n    a:active {\r\n      color: #b15000; }\r\n =20\r\n  .logo {\r\n    text-align: center;\r\n    margin-bottom: 20px; }\r\n =20\r\n  .panel {\r\n    background: #fff;\r\n    border: 1px solid #E3E9ED;\r\n    margin-bottom: 10px; }\r\n =20\r\n  .panel-header {\r\n    font-size: 18px;\r\n    line-height: 30px;\r\n    padding: 10px 20px;\r\n    background: #fcfcfc;\r\n    border-bottom: 1px solid #E3E9ED; }\r\n =20\r\n  .panel-body {\r\n    padding: 20px;\r\n    line-height: 1.7; }\r\n =20\r\n  .container {\r\n    width: 100%;\r\n    max-width: 600px;\r\n    padding: 20px;\r\n    margin: 0 auto; }\r\n =20\r\n  .text-center {\r\n    text-align: center; }\r\n =20\r\n  .thumbnail {\r\n    padding: 4px;\r\n    max-width: 100%;\r\n    border: 1px solid #E3E9ED; }\r\n =20\r\n  .btn-primary {\r\n    color: #fff;\r\n    font-size: 16px;\r\n    padding: 8px 14px;\r\n    line-height: 20px;\r\n    border-radius: 2px;\r\n    display: inline-block;\r\n    background: #FE7300;\r\n    text-decoration: none; }\r\n    .btn-primary:hover, .btn-primary:active {\r\n      color: #fff; }\r\n =20\r\n  .footer {\r\n    color: #9B9B9B;\r\n    font-size: 12px;\r\n    margin-top: 20px; }\r\n    .footer a {\r\n      color: #9B9B9B; }\r\n      .footer a:hover {\r\n        color: #fe9d4c; }\r\n      .footer a:active {\r\n        color: #b15000; }\r\n =20\r\n  .email-body#mail_to_teacher {\r\n    line-height: 26px;\r\n    color: #40485B;\r\n    font-size: 16px;\r\n    padding: 0px; }\r\n    .email-body#mail_to_teacher .container,\r\n    .email-body#mail_to_teacher .panel-body {\r\n      padding: 0px; }\r\n    .email-body#mail_to_teacher .container {\r\n      padding-top: 20px; }\r\n    .email-body#mail_to_teacher .textarea {\r\n      padding: 32px; }\r\n    .email-body#mail_to_teacher .say-hi {\r\n      font-weight: 500; }\r\n    .email-body#mail_to_teacher .paragraph {\r\n      margin-top: 24px; }\r\n      .email-body#mail_to_teacher .paragraph .pro-name {\r\n        color: #000000; }\r\n    .email-body#mail_to_teacher .paragraph.link {\r\n      margin-top: 32px;\r\n      text-align: center; }\r\n      .email-body#mail_to_teacher .paragraph.link .button {\r\n        background: #4A90E2;\r\n        border-radius: 2px;\r\n        color: #FFFFFF;\r\n        text-decoration: none;\r\n        padding: 11px 17px;\r\n        line-height: 14px;\r\n        display: inline-block; }\r\n    .email-body#mail_to_teacher ul.pro-desc {\r\n      list-style-type: none;\r\n      margin: 0px;\r\n      padding: 0px;\r\n      padding-left: 16px; }\r\n      .email-body#mail_to_teacher ul.pro-desc li {\r\n        position: relative; }\r\n      .email-body#mail_to_teacher ul.pro-desc li::before {\r\n        content: '';\r\n        width: 3px;\r\n        height: 3px;\r\n        border-radius: 50%;\r\n        background: red;\r\n        position: absolute;\r\n        left: -15px;\r\n        top: 11px;\r\n        background: #40485B; }\r\n    .email-body#mail_to_teacher .blackboard-area {\r\n      height: 600px;\r\n      padding: 40px;\r\n      background-image: url(https://gitee.com/wewin11235/upload-gitee-image=\r\n/raw/master/bg.jpg);\r\n      color: #FFFFFF; }\r\n      .email-body#mail_to_teacher .blackboard-area .big-title {\r\n        font-size: 32px;\r\n        line-height: 45px;\r\n        text-align: center; }\r\n      .email-body#mail_to_teacher .blackboard-area .desc {\r\n        margin-top: 8px; }\r\n      .email-body#mail_to_teacher .blackboard-area .desc p {\r\n        margin: 0px;\r\n        text-align: center;\r\n        line-height: 28px; }\r\n      .email-body#mail_to_teacher .blackboard-area .card:nth-child(odd) {\r\n        float: left;\r\n        margin-top: 45px; }\r\n      .email-body#mail_to_teacher .blackboard-area .card:nth-child(even) {\r\n        float: right;\r\n        margin-top: 45px; }\r\n      .email-body#mail_to_teacher .blackboard-area .card .title {\r\n        font-size: 18px;\r\n        text-align: center;\r\n        margin-bottom: 10px; }\r\n</style>\r\n\r\n</head>\r\n<body>\r\n<div class=3D'email-body'>\r\n<div class=3D'container'>\r\n<div class=3D'logo'>\r\n<img height=3D\"30\" src=3D\"https://gitee.com/static/images/logo-black.svg\" a=\r\nlt=3D\"Logo black\" />\r\n</div>\r\n<div class=3D'panel'>\r\n<div class=3D'panel-header'>\r\n=E7=A7=81=E4=BA=BA=E4=BB=A4=E7=89=8C\r\n</div>\r\n<div class=3D'panel-body'>\r\n<p>\r\nHi, =E5=BC=A0=E5=BF=97=E5=92=8C!\r\n</p>\r\n<p>\r\n=E4=B8=80=E4=B8=AA=E6=96=B0=E7=9A=84=E7=A7=81=E4=BA=BA=E4=BB=A4=E7=89=8C=EF=\r\n=BC=88FamousNotebook=EF=BC=89=E8=A2=AB=E6=B7=BB=E5=8A=A0=E5=88=B0=E4=BA=86=\r\n=E6=82=A8=E7=9A=84=E4=B8=AA=E4=BA=BA=E5=B8=90=E5=8F=B7=EF=BC=8C=E8=AE=BF=E9=\r\n=97=AE <a  href=3D\"https://sctrack.sendcloud.net/track/click2/eNpFj8FuwyAQR=\r\nP8FtTeCAQNZbul3VBUi63VsxQHLi3up-u9100Ol0RxGM9Kbd2OtDSB7KUyIAFafPQDo5Kyx8dej=\r\nTUZ7UIwno9MR6WSCO83lWvcy6Jdpf-RCn_lyq9vOTTXCSUgtxdTayq_9W9fd5kaksD66davjvFC=\r\n30sa15CVlRGJOrd6p8HM25oVJHDjmrLxWwSnjxX98yA_Oo89xNHEMcOC7GCn63OerB4fur8XYto=\r\nx3xVQGXOo-qEJNyK9v-bz28QNw3Emh.html\" target=3D\"_blank\" >https://gitee.com/p=\r\nrofile/personal_access_tokens</a> =E4=BA=86=E8=A7=A3=E6=9B=B4=E5=A4=9A=E8=\r\n=AF=A6=E6=83=85=E3=80=82\r\n</p>\r\n\r\n</div>\r\n</div>\r\n<div class=3D'footer'>\r\n@Gitee.com\r\n<div class=3D'pull-right'>\r\n=E5=A6=82=E6=9E=9C=E4=BD=A0=E4=B8=8D=E6=83=B3=E5=86=8D=E6=94=B6=E5=88=B0=E7=\r\n=B1=BB=E4=BC=BC=E9=82=AE=E4=BB=B6=EF=BC=8C=E5=8F=AF=E4=BB=A5=E5=88=B0\r\n<a  href=3D\"https://sctrack.sendcloud.net/track/click2/eNpFj8FuwyAQRP8FtTeC=\r\nF2zMcmu-I6osAkuM6kBkcC5R_z1OVKnSaA5P7zBzkkqpEXnPmRwtogKjERGmQUllX23VJEGjqP4=\r\ngYdoRTHIcDimfy5YDfMzb1WW6u69LWbfaRCM_Mw6cza3d6md_7LpLakTCl2t3W0tMC3W5tBSTdy=\r\n2VXN92dEsltq-QRmgQ4yCkZv94j-1Dr-PZ2mhCNJqsCRp3GBUOFOHPqr6tzv-ISjn4pWxBZGqMP=\r\n375-9H3E4KORpg=3D.html\"  >=E8=BF=99=E9=87=8C</a>\r\n=E5=8F=96=E6=B6=88\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n</body>\r\n</html>\r\n<table cellpadding=3D\"0\" cellspacing=3D\"0\" border=3D\"0\" width=3D\"100%\"><tbo=\r\ndy><tr><td align=3D\"center\" style=3D\"overflow: hidden;font-size: 0;padding:=\r\n 0;margin: 0;line-height: 0;\"><img style=3D\"width:0;height:0\" alt=3D\"\" src=\r\n=3D\"https://sctrack.sendcloud.net/track/open2/eNpFjs0KwjAQhN8leEzD7ja_N99Dp=\r\nKRJasWaQpN4Ed_dqgeZYQ4fwzAnJCJtec8ZamctgVHWWhgkIblPOhoQlBUldAjDjmBALbtrHteW=\r\nIxzmdvc5Pfzxsm6tVFFTmBmHXWzyS0lsX0YjFAgtBSr2x7u1HyepokEA6YwLUSlvKZEyoXfJ9b9=\r\nWCXXz4SZKyjEsa4sip8r488W_L89vGiM2Cw=3D=3D.gif\"/></td></tr></tbody></table><=\r\ntable cellpadding=3D\"0\" cellspacing=3D\"0\" border=3D\"0\" width=3D\"100%\"><tr><=\r\ntd align=3D\"center\" style=3D\"padding-top: 10px;\"><div style=3D\"border-top:1=\r\npx solid #ddd;padding:10px;\"><a href=3D\"https://sctrack.sendcloud.net/track=\r\n/unsubscribe2.do?p=3DeNptTssKwjAQ_JfFYxp20yRNb_6HSEk2qRU1hab1Iv67sQdPMjAwA_=\r\nM4kVLKOtEKINs7p7AzzjkctCLVf7lXA6FxsnBDOFQLB7K6ueYwbzniYdoePqenP17mZSurXBNPI=\r\nLACRn8vCWozddKgtFqSgZ_dkICq_uehrnMw3cgxUPAtRhV5ZKtdq8cQYoQ9XHhdPN9kSTnyfd6i=\r\nzGkF8XqL_f_5A7xWQHQ%3D\" target=3D\"_blank\" style=3D\"display: table-cell;disp=\r\nlay:inline-block;background:#ddd; border-radius:4px;padding: 3px 15px;color=\r\n:#a6a6a6;text-decoration:none;font-size:12px;\">=E7=82=B9=E5=87=BB=E8=BF=99=\r\n=E9=87=8C=E5=8F=96=E6=B6=88=E8=AE=A2=E9=98=85<br />click to unsubscribe</a>=\r\n</div></td></tr></table>\r\n\r\n\r\n\r\n"

Only got HTML part, and the Text part is empty.

var HTML = "<html lang='zh-CN'>\n<head>\n<meta content='always' name='referrer'>\n<meta content='text/html; charset=utf-8' http-equiv='Content-Type'>\n<title>Gitee</title>\n<style>\n  .email-body {\n    color: #40485B;\n    font-size: 14px;\n    font-family: -apple-system, \"Helvetica Neue\", Helvetica, \"Nimbus Sans L\", \"Segoe UI\", Arial, \"Liberation Sans\", \"PingFang SC\", \"Microsoft YaHei\", \"Hiragino Sans GB\", \"Wenquanyi Micro Hei\", \"WenQuanYi Zen Hei\", \"ST Heiti\", SimHei, \"WenQuanYi Zen Hei Sharp\", sans-serif;\n    background: #f8f8f8; }\n  \n  .pull-right {\n    float: right; }\n  \n  a {\n    color: #FE7300;\n    text-decoration: underline; }\n    a:hover {\n      color: #fe9d4c; }\n    a:active {\n      color: #b15000; }\n  \n  .logo {\n    text-align: center;\n    margin-bottom: 20px; }\n  \n  .panel {\n    background: #fff;\n    border: 1px solid #E3E9ED;\n    margin-bottom: 10px; }\n  \n  .panel-header {\n    font-size: 18px;\n    line-height: 30px;\n    padding: 10px 20px;\n    background: #fcfcfc;\n    border-bottom: 1px solid #E3E9ED; }\n  \n  .panel-body {\n    padding: 20px;\n    line-height: 1.7; }\n  \n  .container {\n    width: 100%;\n    max-width: 600px;\n    padding: 20px;\n    margin: 0 auto; }\n  \n  .text-center {\n    text-align: center; }\n  \n  .thumbnail {\n    padding: 4px;\n    max-width: 100%;\n    border: 1px solid #E3E9ED; }\n  \n  .btn-primary {\n    color: #fff;\n    font-size: 16px;\n    padding: 8px 14px;\n    line-height: 20px;\n    border-radius: 2px;\n    display: inline-block;\n    background: #FE7300;\n    text-decoration: none; }\n    .btn-primary:hover, .btn-primary:active {\n      color: #fff; }\n  \n  .footer {\n    color: #9B9B9B;\n    font-size: 12px;\n    margin-top: 20px; }\n    .footer a {\n      color: #9B9B9B; }\n      .footer a:hover {\n        color: #fe9d4c; }\n      .footer a:active {\n        color: #b15000; }\n  \n  .email-body#mail_to_teacher {\n    line-height: 26px;\n    color: #40485B;\n    font-size: 16px;\n    padding: 0px; }\n    .email-body#mail_to_teacher .container,\n    .email-body#mail_to_teacher .panel-body {\n      padding: 0px; }\n    .email-body#mail_to_teacher .container {\n      padding-top: 20px; }\n    .email-body#mail_to_teacher .textarea {\n      padding: 32px; }\n    .email-body#mail_to_teacher .say-hi {\n      font-weight: 500; }\n    .email-body#mail_to_teacher .paragraph {\n      margin-top: 24px; }\n      .email-body#mail_to_teacher .paragraph .pro-name {\n        color: #000000; }\n    .email-body#mail_to_teacher .paragraph.link {\n      margin-top: 32px;\n      text-align: center; }\n      .email-body#mail_to_teacher .paragraph.link .button {\n        background: #4A90E2;\n        border-radius: 2px;\n        color: #FFFFFF;\n        text-decoration: none;\n        padding: 11px 17px;\n        line-height: 14px;\n        display: inline-block; }\n    .email-body#mail_to_teacher ul.pro-desc {\n      list-style-type: none;\n      margin: 0px;\n      padding: 0px;\n      padding-left: 16px; }\n      .email-body#mail_to_teacher ul.pro-desc li {\n        position: relative; }\n      .email-body#mail_to_teacher ul.pro-desc li::before {\n        content: '';\n        width: 3px;\n        height: 3px;\n        border-radius: 50%;\n        background: red;\n        position: absolute;\n        left: -15px;\n        top: 11px;\n        background: #40485B; }\n    .email-body#mail_to_teacher .blackboard-area {\n      height: 600px;\n      padding: 40px;\n      background-image: url(https://gitee.com/wewin11235/upload-gitee-image/raw/master/bg.jpg);\n      color: #FFFFFF; }\n      .email-body#mail_to_teacher .blackboard-area .big-title {\n        font-size: 32px;\n        line-height: 45px;\n        text-align: center; }\n      .email-body#mail_to_teacher .blackboard-area .desc {\n        margin-top: 8px; }\n      .email-body#mail_to_teacher .blackboard-area .desc p {\n        margin: 0px;\n        text-align: center;\n        line-height: 28px; }\n      .email-body#mail_to_teacher .blackboard-area .card:nth-child(odd) {\n        float: left;\n        margin-top: 45px; }\n      .email-body#mail_to_teacher .blackboard-area .card:nth-child(even) {\n        float: right;\n        margin-top: 45px; }\n      .email-body#mail_to_teacher .blackboard-area .card .title {\n        font-size: 18px;\n        text-align: center;\n        margin-bottom: 10px; }\n</style>\n\n</head>\n<body>\n<div class='email-body'>\n<div class='container'>\n<div class='logo'>\n<img height=\"30\" src=\"https://gitee.com/static/images/logo-black.svg\" alt=\"Logo black\" />\n</div>\n<div class='panel'>\n<div class='panel-header'>\n私人令牌\n</div>\n<div class='panel-body'>\n<p>\nHi, 张志和!\n</p>\n<p>\n一个新的私人令牌(FamousNotebook)被添加到了您的个人帐号,访问 <a  href=\"https://sctrack.sendcloud.net/track/click2/eNpFj8FuwyAQRP8FtTeCAQNZbul3VBUi63VsxQHLi3up-u9100Ol0RxGM9Kbd2OtDSB7KUyIAFafPQDo5Kyx8dejTUZ7UIwno9MR6WSCO83lWvcy6Jdpf-RCn_lyq9vOTTXCSUgtxdTayq_9W9fd5kaksD66davjvFC30sa15CVlRGJOrd6p8HM25oVJHDjmrLxWwSnjxX98yA_Oo89xNHEMcOC7GCn63OerB4fur8XYtox3xVQGXOo-qEJNyK9v-bz28QNw3Emh.html\" target=\"_blank\" >https://gitee.com/profile/personal_access_tokens</a> 了解更多详情。\n</p>\n\n</div>\n</div>\n<div class='footer'>\n@Gitee.com\n<div class='pull-right'>\n如果你不想再收到类似邮件,可以到\n<a  href=\"https://sctrack.sendcloud.net/track/click2/eNpFj8FuwyAQRP8FtTeCF2zMcmu-I6osAkuM6kBkcC5R_z1OVKnSaA5P7zBzkkqpEXnPmRwtogKjERGmQUllX23VJEGjqP4gYdoRTHIcDimfy5YDfMzb1WW6u69LWbfaRCM_Mw6cza3d6md_7LpLakTCl2t3W0tMC3W5tBSTdy2VXN92dEsltq-QRmgQ4yCkZv94j-1Dr-PZ2mhCNJqsCRp3GBUOFOHPqr6tzv-ISjn4pWxBZGqMP375-9H3E4KORpg=.html\"  >这里</a>\n取消\n</div>\n</div>\n</div>\n</div>\n</body>\n</html>\n<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\"><tbody><tr><td align=\"center\" style=\"overflow: hidden;font-size: 0;padding: 0;margin: 0;line-height: 0;\"><img style=\"width:0;height:0\" alt=\"\" src=\"https://sctrack.sendcloud.net/track/open2/eNpFjs0KwjAQhN8leEzD7ja_N99DpKRJasWaQpN4Ed_dqgeZYQ4fwzAnJCJtec8ZamctgVHWWhgkIblPOhoQlBUldAjDjmBALbtrHteWIxzmdvc5Pfzxsm6tVFFTmBmHXWzyS0lsX0YjFAgtBSr2x7u1HyepokEA6YwLUSlvKZEyoXfJ9b9WCXXz4SZKyjEsa4sip8r488W_L89vGiM2Cw==.gif\"/></td></tr></tbody></table><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\"><tr><td align=\"center\" style=\"padding-top: 10px;\"><div style=\"border-top:1px solid #ddd;padding:10px;\"><a href=\"https://sctrack.sendcloud.net/track/unsubscribe2.do?p=eNptTssKwjAQ_JfFYxp20yRNb_6HSEk2qRU1hab1Iv67sQdPMjAwA_M4kVLKOtEKINs7p7AzzjkctCLVf7lXA6FxsnBDOFQLB7K6ueYwbzniYdoePqenP17mZSurXBNPILACRn8vCWozddKgtFqSgZ_dkICq_uehrnMw3cgxUPAtRhV5ZKtdq8cQYoQ9XHhdPN9kSTnyfd6izGkF8XqL_f_5A7xWQHQ%3D\" target=\"_blank\" style=\"display: table-cell;display:inline-block;background:#ddd; border-radius:4px;padding: 3px 15px;color:#a6a6a6;text-decoration:none;font-size:12px;\">点击这里取消订阅<br />click to unsubscribe</a></div></td></tr></table>\n\n\n\r"

Case 2

var raw2 = "Return-Path: <[email protected]>\r\nReceived: from ucmail28.sendcloud.io (ucmail28.sendcloud.io [106.75.10.113])\r\n by inbound-smtp.ap-northeast-1.amazonaws.com with SMTP id qse4ds26t8bhid7d54dmp7k28uj125q63ejjc201\r\n for [email protected];\r\n Wed, 01 Nov 2023 06:37:53 +0000 (UTC)\r\nX-SES-Spam-Verdict: PASS\r\nX-SES-Virus-Verdict: PASS\r\nReceived-SPF: pass (spfCheck: domain of mailer.oschina.net designates 106.75.10.113 as permitted sender) client-ip=106.75.10.113; [email protected]; helo=ucmail28.sendcloud.io;\r\nAuthentication-Results: amazonses.com;\r\n spf=pass (spfCheck: domain of mailer.oschina.net designates 106.75.10.113 as permitted sender) client-ip=106.75.10.113; [email protected]; helo=ucmail28.sendcloud.io;\r\n dkim=pass [email protected];\r\n dmarc=pass header.from=mailer.oschina.net;\r\nX-SES-RECEIPT: AEFBQUFBQUFBQUFGZHhFM0VRbFJKMjJxWDRtb3VYT0cwZEdwTFYrSkc3ZFN4aGRaRXFjK0I0RVd5RVRLVFh4cnpxaXZ6Vldxc2NOMkFlbjhMR2x0UjBTRkxDZnVNSVFVaERlV0pZaEZSZ0Z0ODlmeThTRFpFaFNlTmdFTUlQN2hQZGQvekVKMmU4K1lTcFN4aVB4VGJtVjdPNXhEQjFrUGJ4ZUliVkkxRWFQMXFXd1pQZmcxaUtxV1NrVGNSbDVEOFRVdzVTQ3E2MGtLNURFZVBCOFE4c1NBeW8zQTRRWlVsTk1ZWElEbmtLcGtidEk4TURSNTVycEhJeVJCZkJYWlBpUDlRczgybTBEdTZ0UlBvRWRPaTRBNmRBam1DVnE4dkYrZ3QrZzNoRVJqL09IaXlOazdpZGc9PQ==\r\nX-SES-DKIM-SIGNATURE: a=rsa-sha256; q=dns/txt; b=UT/l7OHpkJc5etAT6ngyfwrfuh8Ivb7ZvIvpYAHDYgJrXxuHKPG35+m3ZY3jnUfX+3PBOBANhXNAm/82ivSFJvZGPtorme4mn4jnI966exnGJ4pP7+8vIhadalbq4YTQcaxBOpYqp3jAiDkR/8no1EI38PbDU5AIOcwk78UIRm4=; c=relaxed/simple; s=zh4gjftm6etwoq6afzugpky45synznly; d=amazonses.com; t=1698820674; v=1; bh=pQANpr+Jxs5syV0V34z1sU83xykQrRdxBEbOAurqMoc=; h=From:To:Cc:Bcc:Subject:Date:Message-ID:MIME-Version:Content-Type:X-SES-RECEIPT;\r\nDKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;\r\n d=mailer.oschina.net; [email protected]; q=dns/txt; s=mail;\r\n t=1698820671; h=date : from : to : message-id : subject : mime-version\r\n : content-type : content-transfer-encoding : reply-to :\r\n list-unsubscribe : from;\r\n bh=pQANpr+Jxs5syV0V34z1sU83xykQrRdxBEbOAurqMoc=;\r\n b=eLfLqVBc1fzZBag1E3h78GPOH7heO1Nfs+VncHfgUqzVOc/3sl3x4kZvstLGl5Zbp+nPE\r\n ildJp6OfP0IQsWyvFFsCDu8L3Dog2gRzjlKIdfSBlV1M0z0PUI6lbWUnrqQBdC+hqHsAScg\r\n EcvoBW006EY7XWKMs5I9sHGdKbdypMk=\r\nReceived: from git.oschina.net (Unknown [127.0.0.1])         by SendCloud Inbound Server with ESMTPSA id B626B474-6EB9-4C68-BB46-CC7AE74347A1.1         envelope-from <[email protected]> (authenticated bits=0) (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256); Wed, 01 Nov 2023 14:37:51 +0800\r\nDate: Wed, 01 Nov 2023 14:37:50 +0800\r\nFrom: Gitee <[email protected]>\r\nTo: [email protected]\r\nMessage-ID: <1698820671328_42129_130750_5084.sc-10_9_1_75-inbound0@mailer.oschina.net>\r\nSubject: =?utf-8?b?R2l0ZWUgfCDlv6vpgJ/lhaXpl6ggR2l0ZWUg77yM5byA5ZCv5oqA5pyv5o+Q?=\r\n =?utf-8?b?5Y2H5LmL6Lev?=\r\nMime-Version: 1.0\r\nContent-Type: text/html; charset=\"UTF-8\"\r\nContent-Transfer-Encoding: quoted-printable\r\nREPLY-TO: Gitee <[email protected]>\r\nX-SENDCLOUD-UUID: 1698820671328_42129_130750_5084.sc-10_9_1_75-inbound0$humaneva@techboy.io\r\nX-SENDCLOUD-LOG: 1698820671328_42129_130750_5084.sc-10_9_1_75-inbound0$humaneva@techboy.io#[email protected]#122268#42129#0#false#false#3#-1#\r\nX-SENDCLOUD-LOG-NEW: MTY5ODgyMDY3MTMyOF80MjEyOV8xMzA3NTBfNTA4NC5zYy0xMF85XzFfNzUtaW5ib3VuZDAkaHVtYW5ldmFAZ29ydXN0LnRlY2gjaHVtYW5ldmFAZ29ydXN0LnRlY2gjMTIyMjY4IzQyMTI5IzAjZmFsc2UjZmFsc2UjMyMtMSM=\r\nList-Unsubscribe: <mailto:0_122268_1698820671328_42129_130750_5084.sc-10_9_1_75-inbound0@mailer.oschina.net>\r\n\r\n<html lang=3D'zh-CN'>\r\n<head>\r\n<meta content=3D'always' name=3D'referrer'>\r\n<meta content=3D'text/html; charset=3Dutf-8' http-equiv=3D'Content-Type'>\r\n<title>Gitee</title>\r\n<style>\r\n  .email-body {\r\n    color: #40485B;\r\n    font-size: 14px;\r\n    font-family: -apple-system, \"Helvetica Neue\", Helvetica, \"Nimbus Sans L=\r\n\", \"Segoe UI\", Arial, \"Liberation Sans\", \"PingFang SC\", \"Microsoft YaHei\", =\r\n\"Hiragino Sans GB\", \"Wenquanyi Micro Hei\", \"WenQuanYi Zen Hei\", \"ST Heiti\",=\r\n SimHei, \"WenQuanYi Zen Hei Sharp\", sans-serif;\r\n    background: #f8f8f8; }\r\n =20\r\n  .pull-right {\r\n    float: right; }\r\n =20\r\n  a {\r\n    color: #FE7300;\r\n    text-decoration: underline; }\r\n    a:hover {\r\n      color: #fe9d4c; }\r\n    a:active {\r\n      color: #b15000; }\r\n =20\r\n  .logo {\r\n    text-align: center;\r\n    margin-bottom: 20px; }\r\n =20\r\n  .panel {\r\n    background: #fff;\r\n    border: 1px solid #E3E9ED;\r\n    margin-bottom: 10px; }\r\n =20\r\n  .panel-header {\r\n    font-size: 18px;\r\n    line-height: 30px;\r\n    padding: 10px 20px;\r\n    background: #fcfcfc;\r\n    border-bottom: 1px solid #E3E9ED; }\r\n =20\r\n  .panel-body {\r\n    padding: 20px;\r\n    line-height: 1.7; }\r\n =20\r\n  .container {\r\n    width: 100%;\r\n    max-width: 600px;\r\n    padding: 20px;\r\n    margin: 0 auto; }\r\n =20\r\n  .text-center {\r\n    text-align: center; }\r\n =20\r\n  .thumbnail {\r\n    padding: 4px;\r\n    max-width: 100%;\r\n    border: 1px solid #E3E9ED; }\r\n =20\r\n  .btn-primary {\r\n    color: #fff;\r\n    font-size: 16px;\r\n    padding: 8px 14px;\r\n    line-height: 20px;\r\n    border-radius: 2px;\r\n    display: inline-block;\r\n    background: #FE7300;\r\n    text-decoration: none; }\r\n    .btn-primary:hover, .btn-primary:active {\r\n      color: #fff; }\r\n =20\r\n  .footer {\r\n    color: #9B9B9B;\r\n    font-size: 12px;\r\n    margin-top: 20px; }\r\n    .footer a {\r\n      color: #9B9B9B; }\r\n      .footer a:hover {\r\n        color: #fe9d4c; }\r\n      .footer a:active {\r\n        color: #b15000; }\r\n =20\r\n  .email-body#mail_to_teacher {\r\n    line-height: 26px;\r\n    color: #40485B;\r\n    font-size: 16px;\r\n    padding: 0px; }\r\n    .email-body#mail_to_teacher .container,\r\n    .email-body#mail_to_teacher .panel-body {\r\n      padding: 0px; }\r\n    .email-body#mail_to_teacher .container {\r\n      padding-top: 20px; }\r\n    .email-body#mail_to_teacher .textarea {\r\n      padding: 32px; }\r\n    .email-body#mail_to_teacher .say-hi {\r\n      font-weight: 500; }\r\n    .email-body#mail_to_teacher .paragraph {\r\n      margin-top: 24px; }\r\n      .email-body#mail_to_teacher .paragraph .pro-name {\r\n        color: #000000; }\r\n    .email-body#mail_to_teacher .paragraph.link {\r\n      margin-top: 32px;\r\n      text-align: center; }\r\n      .email-body#mail_to_teacher .paragraph.link .button {\r\n        background: #4A90E2;\r\n        border-radius: 2px;\r\n        color: #FFFFFF;\r\n        text-decoration: none;\r\n        padding: 11px 17px;\r\n        line-height: 14px;\r\n        display: inline-block; }\r\n    .email-body#mail_to_teacher ul.pro-desc {\r\n      list-style-type: none;\r\n      margin: 0px;\r\n      padding: 0px;\r\n      padding-left: 16px; }\r\n      .email-body#mail_to_teacher ul.pro-desc li {\r\n        position: relative; }\r\n      .email-body#mail_to_teacher ul.pro-desc li::before {\r\n        content: '';\r\n        width: 3px;\r\n        height: 3px;\r\n        border-radius: 50%;\r\n        background: red;\r\n        position: absolute;\r\n        left: -15px;\r\n        top: 11px;\r\n        background: #40485B; }\r\n    .email-body#mail_to_teacher .blackboard-area {\r\n      height: 600px;\r\n      padding: 40px;\r\n      background-image: url(https://gitee.com/wewin11235/upload-gitee-image=\r\n/raw/master/bg.jpg);\r\n      color: #FFFFFF; }\r\n      .email-body#mail_to_teacher .blackboard-area .big-title {\r\n        font-size: 32px;\r\n        line-height: 45px;\r\n        text-align: center; }\r\n      .email-body#mail_to_teacher .blackboard-area .desc {\r\n        margin-top: 8px; }\r\n      .email-body#mail_to_teacher .blackboard-area .desc p {\r\n        margin: 0px;\r\n        text-align: center;\r\n        line-height: 28px; }\r\n      .email-body#mail_to_teacher .blackboard-area .card:nth-child(odd) {\r\n        float: left;\r\n        margin-top: 45px; }\r\n      .email-body#mail_to_teacher .blackboard-area .card:nth-child(even) {\r\n        float: right;\r\n        margin-top: 45px; }\r\n      .email-body#mail_to_teacher .blackboard-area .card .title {\r\n        font-size: 18px;\r\n        text-align: center;\r\n        margin-bottom: 10px; }\r\n</style>\r\n\r\n</head>\r\n<body>\r\n<div class=3D'email-body'>\r\n<div class=3D'container'>\r\n<div class=3D'logo'>\r\n<img height=3D\"30\" src=3D\"https://gitee.com/static/images/logo-black.svg\" a=\r\nlt=3D\"Logo black\" />\r\n</div>\r\n<div class=3D'panel'>\r\n<div class=3D'panel-header'>\r\n=E9=80=9A=E7=9F=A5\r\n\r\n</div>\r\n<div class=3D'panel-body'>\r\n<p>Hi =E5=BC=A0=E5=BF=97=E5=92=8C</p>\r\n<p>\r\n=E6=AC=A2=E8=BF=8E=E4=BD=BF=E7=94=A8 Gitee=EF=BC=8CGitee =E6=B1=87=E8=81=9A=\r\n=E4=BA=86=E5=9B=BD=E5=86=85 <a  href=3D\"https://sctrack.sendcloud.net/track=\r\n/click2/eNpFj81qwzAQhN9FtDdF3pWiv1v7HKUIWV7HobYULDkESt-9Ij0U5jLDxzDzgVJK47j=\r\niDI13ToKxqKQLZ4nSB1RgNQQN7ixqOiGEngWrT9c8liNP8LIcW8x0j2-Xsh-1iUZpYRw4W1q71V=\r\nf1PgyXayMSqWwDPW5r2WnYqbuN8vQk57hWYn0AGGG1QBCIiv3nXTFKnJOmWacpjW6cR_LGQ_SWQ=\r\nBtt_6ia2h7Tl6i9Oa3lmESmxvj3D3---fwFUGVFQw=3D=3D.html\" target=3D\"_blank\" >=\r\n=E6=9C=80=E4=BC=98=E8=B4=A8=E7=9A=84=E5=BC=80=E6=BA=90=E9=A1=B9=E7=9B=AE</a=\r\n>=EF=BC=8C=E5=AF=B9=E4=B8=AA=E4=BA=BA=E5=BC=80=E5=8F=91=E8=80=85 <a  href=\r\n=3D\"https://sctrack.sendcloud.net/track/click2/eNpFjs1uwjAQhN_Fam_G2V3_bW7l=\r\nORCybMclCHAq7PRS8e6N4IA0p28-aeaARORYainQjcwEzqMmDoaQxoAavIVggY1qeYcQNha83Z1=\r\nrWtY6wce83mItv_HrtNzX1lUveRYSpJh7_2mfej8Mp3MvReXlNjyL73htRWx74JS3CkEhavHmWw=\r\nDRJgeGSuTsiUeTXEoTG6ZistUvq-V-j_miWqlTvi7rpGrpQv495PP88R-wuT0u.html\" target=\r\n=3D\"_blank\" >=E5=AE=8C=E5=85=A8=E5=85=8D=E8=B4=B9</a>=EF=BC=88=E4=B8=8D=E9=\r\n=99=90=E5=85=AC=E6=9C=89=E3=80=81=E7=A7=81=E6=9C=89=E4=BB=93=E5=BA=93=EF=BC=\r\n=89=EF=BC=8C=E5=90=8C=E6=97=B6=E6=8F=90=E4=BE=9B=E9=92=88=E5=AF=B9=E5=9B=A2=\r\n=E9=98=9F=E5=8D=8F=E4=BD=9C=E5=BC=80=E5=8F=91=E5=9C=BA=E6=99=AF=E7=9A=84=E4=\r\n=BC=81=E4=B8=9A=E7=89=88=EF=BC=88<a  href=3D\"https://sctrack.sendcloud.net/=\r\ntrack/click2/eNpFj0FqwzAQRe8i0p0ia0a2NNm15yhBqKNxbJrIwZK7Kbl7TCgU_urx4PE_AR=\r\nE9aacV-BMRWh_AIcUeAU8RnA2DjYOl3lQ-go07i2E4zuVr2Uq2h2m7pSI_6f2yrFttpglPSlutp=\r\ntbu9c19dN1lbiKGl1snpcl6X-cq9eWM6VpF7WnrTRgMWAPg1D_fRxlIcHSEPshIKTOPPrsefQ5e=\r\n-M-q3NbE36ZKyXxdtmyKNKV_H_r14_wEZoVC6w=3D=3D.html\" target=3D\"_blank\" >5=E4=\r\n=BA=BA=E4=BB=A5=E4=B8=8B=E5=9B=A2=E9=98=9F=E9=99=90=E6=97=B6=E5=85=8D=E8=B4=\r\n=B9=E4=B8=AD</a>=EF=BC=89=EF=BC=8C=E4=B8=93=E4=B8=9A=E3=80=81=E8=BD=BB=E9=\r\n=87=8F=E3=80=81=E7=81=B5=E6=B4=BB=EF=BC=8C=E8=AE=A9=E4=BC=81=E4=B8=9A=E7=A0=\r\n=94=E5=8F=91=E6=9B=B4=E6=B5=81=E7=95=85=E3=80=81=E6=9B=B4=E9=AB=98=E6=95=88=\r\n=E3=80=82\r\n</p>\r\n<p>\r\n=E5=BC=80=E5=A7=8B=E4=BD=BF=E7=94=A8 Gitee=EF=BC=8C=E6=82=A8=E5=8F=AF=E4=BB=\r\n=A5=E5=8F=82=E7=85=A7=E4=B8=8B=E8=BF=B0=E7=9A=84=E6=AD=A5=E9=AA=A4=EF=BC=9A\r\n</p>\r\n<p>\r\n<a  href=3D\"https://sctrack.sendcloud.net/track/click2/eNpFj8tuwyAQRf8FtTsC=\r\nM2Ae2bXfUVUIhklsxbEjg7up-u-10kWluzo6i3M_0Bjjo7RSoD_HaMAHtCamwaA5J7QQHCQHcVC=\r\nNTgjpYCm407SUdV8qvIz7PS_8ld-u67a3rjrTKCRIMfb-aK_2Xevr1JkVrXc98vzQeesTzdz0gA=\r\nae6iXPjcVRAF4FpxAUohX__FhB8iZXcIXoYnMALADZleC4Do7hz2rUt0w31XipNK97VQt3Ib9_5=\r\nPPO5y8C-0Qk.html\" target=3D\"_blank\" >=E5=88=9B=E5=BB=BA=E4=BB=93=E5=BA=93</=\r\na> =E2=80=94=E2=80=94 <a  href=3D\"https://sctrack.sendcloud.net/track/click=\r\n2/eNpFj8tqwzAURP9FtDtFuldv79rvCEUo0nVs4sjBkrMp_feadFGY1eHAzJxRKeUC15yhG0JQ4=\r\nDxqFaJRqIaIGryFaCEY0fIJIR4senua62Xda4G3ab-nSs_0cV23vXXRKU-MA2dT74_2rj-lvM6d=\r\nSOT1LidaHjJtfc4LNWmO7pc6pqUROxaAE94KBIGo2T8_clHjoJMBq5VPBsexhKwzFjLOkQ3pz2q=\r\n5bynfRKNa8rLuRVTqjH__8Nedr1_wr0Pn.html\" target=3D\"_blank\" >=E6=8F=90=E4=BA=\r\n=A4=E4=BB=A3=E7=A0=81</a>\r\n</p>\r\n<p>\r\n=E6=88=91=E4=BB=AC=E6=8F=90=E4=BE=9B=E6=93=8D=E4=BD=9C=E6=8C=87=E5=8D=97=E4=\r\n=BE=9B=E6=82=A8=E5=8F=82=E8=80=83=EF=BC=9A\r\n<ol>\r\n<li>\r\n<a  href=3D\"https://sctrack.sendcloud.net/track/click2/eNpFj0FuwyAQRe-C2h0B=\r\nZjB4vGvOEVUIwzi26uAo4G6q3r1uuuju6-kt3r8AInqSVgrwAxEa34NFCh0CDgGs6Z0JzlCnajq=\r\nBCQcLvTstZdz2ks3LvN9i4c_4dt0ee22qcZqFNFLMrd3rqz1rfV0as0rbTc-83nWKjQ954aoRn-=\r\noU18riKDBe9U6BUQBW_PPf2RFxTui9nYbejSNksj4O2E1EI8Y_q6b2iOlDVS45rdueVeEm5Ne3f=\r\nN55_wEeRUQ4.html\" target=3D\"_blank\" >=E5=B8=90=E5=8F=B7=E7=AE=A1=E7=90=86</=\r\na>=EF=BC=88=E4=B8=AA=E4=BA=BA=E4=BF=A1=E6=81=AF=E8=AE=BE=E7=BD=AE=E3=80=81=\r\n=E6=B6=88=E6=81=AF=E9=80=9A=E7=9F=A5=E8=AE=BE=E7=BD=AE=E3=80=81=C2=A0SSH =\r\n=E5=85=AC=E9=92=A5=E8=AE=BE=E7=BD=AE=E7=AD=89=EF=BC=89\r\n</li>\r\n<li>\r\n<a  href=3D\"https://sctrack.sendcloud.net/track/click2/eNpFj0FOwzAQRe9iwc61=\r\nZ8ax4-zgHAhZZjI0UVOnqh02iLtjlQXSXz29xftvSEQhaqcVhilGgjCio5gGQpoSOhg9JA9xMJV=\r\nPCKmzNPrTWj72o8zwtBzXXOQrv5z3-1GbacKL0qDV0tqtPrtXa89rEzG8X-0i281ybtLlVaolfK=\r\nifeauiegEEM3qDYBCd-ud9kcVNA2XuuT4Dgc-RwQU3DywZ_Z9Vud0zX0yVMvO2H7Mp0pT-_tGPO=\r\n--_B3RD2A=3D=3D.html\" target=3D\"_blank\" >=E4=BB=A3=E7=A0=81=E7=AE=A1=E7=90=\r\n=86</a>=EF=BC=88=E5=85=8B=E9=9A=86/=E4=B8=8B=E8=BD=BD=E4=BB=A3=E7=A0=81=E3=\r\n=80=81=E5=85=8B=E9=9A=86 Pull Request=E3=80=81Svn =E6=94=AF=E6=8C=81=E7=AD=\r\n=89=EF=BC=89\r\n</li>\r\n<li>\r\n<a  href=3D\"https://sctrack.sendcloud.net/track/click2/eNpFj8tuwyAQRf8FpTsC=\r\nMxBeu_Y7qghhGMdWHBwF3E3Uf6-VLCrd1dFZnPuNSinrueYMbfBegXWolY8nhSpE1OAMRAP-JFo=\r\n-IsSdRWeOcx3WrRY4TNstVfpJn5f1sbUuOuWJceBs6v3ePvSXlJe5E4m83uREy13m1GmXZ2pSw0=\r\nsd09KI7QVghTMCQSBq9s_3FUeDN3pQRY9lcM6VFIJBa8sYsh7D22q5P1K-ika15GXdiqjUGX_-8=\r\nted8x81OUSf.html\" target=3D\"_blank\" >=E4=BB=93=E5=BA=93=E7=AE=A1=E7=90=86</=\r\na>=EF=BC=88=E4=BB=93=E5=BA=93=E4=BF=A1=E6=81=AF=E8=AE=BE=E7=BD=AE=E3=80=81=\r\n=E4=BB=93=E5=BA=93=E6=88=90=E5=91=98=E7=AE=A1=E7=90=86=E3=80=81=E4=BB=93=E5=\r\n=BA=93=E5=8D=8F=E4=BD=9C=E5=BC=80=E5=8F=91=E7=AD=89=EF=BC=89\r\n</li>\r\n<li>\r\n<a  href=3D\"https://sctrack.sendcloud.net/track/click2/eNpFj8tOwzAQRf_Fgp3r=\r\nx4wntnfwHQhZxp42EalT1Q4bxL8TlQXSXR2dxblvFgCmIFEKO8UQwEzeIoTkwEJMFo0nk8gEp3o=\r\n5WZMOljydlvax7a2ap3m_5sZf-eWy3fc-1OAyC2mkmMe49Wd81fqyDGZVtqueeb3pkgcf8sJdO3=\r\nqo57x2FkeBmZQnZY2yFsU_PxYCe4eOYnH17KKvBDFyBQxISOz-rF7GPZdP1bnVsm57VY2HkN8_8=\r\nnHn_Rf6UUOM.html\" target=3D\"_blank\" >=E5=B8=B8=E8=A7=81=E9=97=AE=E9=A2=98</=\r\na>=EF=BC=88Git =E6=93=8D=E4=BD=9C=E5=B8=B8=E8=A7=81=E9=97=AE=E9=A2=98=E3=80=\r\n=81=E6=BF=80=E6=B4=BB/=E9=87=8D=E7=BD=AE=E5=AF=86=E7=A0=81=E7=AD=89=EF=BC=\r\n=89\r\n</li>\r\n</ol>\r\n</p>\r\n<p>\r\n=E4=BD=BF=E7=94=A8=E4=B8=AD=E5=A6=82=E9=9C=80=E5=B8=AE=E5=8A=A9=EF=BC=8C=E6=\r\n=82=A8=E5=8F=AF=E4=BB=A5=E5=8A=A0=E5=85=A5=E5=AE=98=E6=96=B9=E6=8A=80=E6=9C=\r\n=AF=E4=BA=A4=E6=B5=81 QQ =E7=BE=A4=EF=BC=9A777320883 =EF=BC=88=E9=AA=8C=E8=\r\n=AF=81=E7=AD=94=E6=A1=88=EF=BC=9Agitee.com=EF=BC=89=E6=88=96=E9=9A=8F=E6=97=\r\n=B6=E6=9F=A5=E7=9C=8B <a  href=3D\"https://sctrack.sendcloud.net/track/click=\r\n2/eNpFj8tqwzAQRf9FtDtFnhlZj-za7whF6DGOQxw5RHI2pf9eky4Kd3Xugcs9IRFZL7UUaI_eE=\r\n1iHmnwYCekYUIMzEAz4UbV8QAg7C84cLjWtWy3wNm-3WPkZP87rY2tddc6zkCDF3Pu9vevPYThf=\r\nOrPK622Yebm_yikujcW-CVY5oxAUohb_fI815NGMU5lSyclSAqasjXcAGNMIf1bL_RHzVTWuJS_=\r\nrVlTlLuT3j3wd-PoFAPk_Jg=3D=3D.html\" target=3D\"_blank\" >=E5=B8=AE=E5=8A=A9=\r\n=E6=96=87=E6=A1=A3</a>=E3=80=82=E8=B4=AD=E4=B9=B0=E4=BC=81=E4=B8=9A=E7=89=\r\n=88=EF=BC=9A400-606-0201\r\n</p>\r\n<p>\r\nGitee.com\r\n</p>\r\n\r\n\r\n</div>\r\n</div>\r\n<div class=3D'footer'>\r\n@Gitee.com\r\n<div class=3D'pull-right'>\r\n=E5=A6=82=E6=9E=9C=E4=BD=A0=E4=B8=8D=E6=83=B3=E5=86=8D=E6=94=B6=E5=88=B0=E7=\r\n=B1=BB=E4=BC=BC=E9=82=AE=E4=BB=B6=EF=BC=8C=E5=8F=AF=E4=BB=A5=E5=88=B0\r\n<a  href=3D\"https://sctrack.sendcloud.net/track/click2/eNpFj8tuwyAQRf8FtTuC=\r\nh8E8vGu_I6oQGXCM4kBkcDZV_71Wuqh0V0dnce5ZIqJxXHEmzeQcgrFSofMjSpy8VGA1eA1uFI1=\r\nOEvzBvNWnXC51LxHelv0eSnqGj2vd9tZFT7QwDpwtvT_au_ochmvuKQmq9-Gx1TmvaSi15zlT6L=\r\nmW9rLnsLbEjggwwmohQUip2D8_hmlOxkV9cRAUGXSTpUiTG51CpBD-rEZ9C3QTLZVIa92jKKkz_=\r\nv3DX4--fgGCAkZn.html\"  >=E8=BF=99=E9=87=8C</a>\r\n=E5=8F=96=E6=B6=88\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n</body>\r\n</html>\r\n<table cellpadding=3D\"0\" cellspacing=3D\"0\" border=3D\"0\" width=3D\"100%\"><tbo=\r\ndy><tr><td align=3D\"center\" style=3D\"overflow: hidden;font-size: 0;padding:=\r\n 0;margin: 0;line-height: 0;\"><img style=3D\"width:0;height:0\" alt=3D\"\" src=\r\n=3D\"https://sctrack.sendcloud.net/track/open2/eNpFjs0KwjAQhN8leIxhd5PNz833E=\r\nAlpmlhRUzCtF_HdLXqQmdPHxzBHJCLrpZYCbfCewDrU5KMhpBBRg2OIDN6onvcIcWPR8f7Shnlt=\r\nI-ym9Z5aeabDeX6sfVFLyZOQsEXUdOtFbMNglWOFoBC1-POtplIolUOtZPTAhsfMQRujdXXJcvp=\r\nZPS-PlK-qlzbm27yOqpVFyNdbfl-ePiJONi8=3D.gif\"/></td></tr></tbody></table><ta=\r\nble cellpadding=3D\"0\" cellspacing=3D\"0\" border=3D\"0\" width=3D\"100%\"><tr><td=\r\n align=3D\"center\" style=3D\"padding-top: 10px;\"><div style=3D\"border-top:1px=\r\n solid #ddd;padding:10px;\"><a href=3D\"https://sctrack.sendcloud.net/track/u=\r\nnsubscribe2.do?p=3DeNptjssOwiAURP-FuKTkXigFdv6HMYTHrTVWmpTWjfHfRReuzMxmzuJk=\r\nTiilHCxXnOHgrJUwGFTS-l6idB4VGA1eg-1FTR2Cb8wb3V1LXPaS4TDt91DoEY6XZd3rJjZKE-P=\r\nQwsYwV2JNDIMwWiAIRMV-vEPO2vovYDFAL5M1mSgb57KOIzqiGHodjHIfb2tN2xrSTVQqOc3Lnk=\r\nWhjfHni3__n9-vKEAh\" target=3D\"_blank\" style=3D\"display: table-cell;display:=\r\ninline-block;background:#ddd; border-radius:4px;padding: 3px 15px;color:#a6=\r\na6a6;text-decoration:none;font-size:12px;\">=E7=82=B9=E5=87=BB=E8=BF=99=E9=\r\n=87=8C=E5=8F=96=E6=B6=88=E8=AE=A2=E9=98=85<br />click to unsubscribe</a></d=\r\niv></td></tr></table>\r\n\r\n\r\n\r\n"

Same issue, only got:

var HTML = "<html lang='zh-CN'>\n<head>\n<meta content='always' name='referrer'>\n<meta content='text/html; charset=utf-8' http-equiv='Content-Type'>\n<title>Gitee</title>\n<style>\n  .email-body {\n    color: #40485B;\n    font-size: 14px;\n    font-family: -apple-system, \"Helvetica Neue\", Helvetica, \"Nimbus Sans L\", \"Segoe UI\", Arial, \"Liberation Sans\", \"PingFang SC\", \"Microsoft YaHei\", \"Hiragino Sans GB\", \"Wenquanyi Micro Hei\", \"WenQuanYi Zen Hei\", \"ST Heiti\", SimHei, \"WenQuanYi Zen Hei Sharp\", sans-serif;\n    background: #f8f8f8; }\n  \n  .pull-right {\n    float: right; }\n  \n  a {\n    color: #FE7300;\n    text-decoration: underline; }\n    a:hover {\n      color: #fe9d4c; }\n    a:active {\n      color: #b15000; }\n  \n  .logo {\n    text-align: center;\n    margin-bottom: 20px; }\n  \n  .panel {\n    background: #fff;\n    border: 1px solid #E3E9ED;\n    margin-bottom: 10px; }\n  \n  .panel-header {\n    font-size: 18px;\n    line-height: 30px;\n    padding: 10px 20px;\n    background: #fcfcfc;\n    border-bottom: 1px solid #E3E9ED; }\n  \n  .panel-body {\n    padding: 20px;\n    line-height: 1.7; }\n  \n  .container {\n    width: 100%;\n    max-width: 600px;\n    padding: 20px;\n    margin: 0 auto; }\n  \n  .text-center {\n    text-align: center; }\n  \n  .thumbnail {\n    padding: 4px;\n    max-width: 100%;\n    border: 1px solid #E3E9ED; }\n  \n  .btn-primary {\n    color: #fff;\n    font-size: 16px;\n    padding: 8px 14px;\n    line-height: 20px;\n    border-radius: 2px;\n    display: inline-block;\n    background: #FE7300;\n    text-decoration: none; }\n    .btn-primary:hover, .btn-primary:active {\n      color: #fff; }\n  \n  .footer {\n    color: #9B9B9B;\n    font-size: 12px;\n    margin-top: 20px; }\n    .footer a {\n      color: #9B9B9B; }\n      .footer a:hover {\n        color: #fe9d4c; }\n      .footer a:active {\n        color: #b15000; }\n  \n  .email-body#mail_to_teacher {\n    line-height: 26px;\n    color: #40485B;\n    font-size: 16px;\n    padding: 0px; }\n    .email-body#mail_to_teacher .container,\n    .email-body#mail_to_teacher .panel-body {\n      padding: 0px; }\n    .email-body#mail_to_teacher .container {\n      padding-top: 20px; }\n    .email-body#mail_to_teacher .textarea {\n      padding: 32px; }\n    .email-body#mail_to_teacher .say-hi {\n      font-weight: 500; }\n    .email-body#mail_to_teacher .paragraph {\n      margin-top: 24px; }\n      .email-body#mail_to_teacher .paragraph .pro-name {\n        color: #000000; }\n    .email-body#mail_to_teacher .paragraph.link {\n      margin-top: 32px;\n      text-align: center; }\n      .email-body#mail_to_teacher .paragraph.link .button {\n        background: #4A90E2;\n        border-radius: 2px;\n        color: #FFFFFF;\n        text-decoration: none;\n        padding: 11px 17px;\n        line-height: 14px;\n        display: inline-block; }\n    .email-body#mail_to_teacher ul.pro-desc {\n      list-style-type: none;\n      margin: 0px;\n      padding: 0px;\n      padding-left: 16px; }\n      .email-body#mail_to_teacher ul.pro-desc li {\n        position: relative; }\n      .email-body#mail_to_teacher ul.pro-desc li::before {\n        content: '';\n        width: 3px;\n        height: 3px;\n        border-radius: 50%;\n        background: red;\n        position: absolute;\n        left: -15px;\n        top: 11px;\n        background: #40485B; }\n    .email-body#mail_to_teacher .blackboard-area {\n      height: 600px;\n      padding: 40px;\n      background-image: url(https://gitee.com/wewin11235/upload-gitee-image/raw/master/bg.jpg);\n      color: #FFFFFF; }\n      .email-body#mail_to_teacher .blackboard-area .big-title {\n        font-size: 32px;\n        line-height: 45px;\n        text-align: center; }\n      .email-body#mail_to_teacher .blackboard-area .desc {\n        margin-top: 8px; }\n      .email-body#mail_to_teacher .blackboard-area .desc p {\n        margin: 0px;\n        text-align: center;\n        line-height: 28px; }\n      .email-body#mail_to_teacher .blackboard-area .card:nth-child(odd) {\n        float: left;\n        margin-top: 45px; }\n      .email-body#mail_to_teacher .blackboard-area .card:nth-child(even) {\n        float: right;\n        margin-top: 45px; }\n      .email-body#mail_to_teacher .blackboard-area .card .title {\n        font-size: 18px;\n        text-align: center;\n        margin-bottom: 10px; }\n</style>\n\n</head>\n<body>\n<div class='email-body'>\n<div class='container'>\n<div class='logo'>\n<img height=\"30\" src=\"https://gitee.com/static/images/logo-black.svg\" alt=\"Logo black\" />\n</div>\n<div class='panel'>\n<div class='panel-header'>\n通知\n\n</div>\n<div class='panel-body'>\n<p>Hi 张志和</p>\n<p>\n欢迎使用 Gitee,Gitee 汇聚了国内 <a  href=\"https://sctrack.sendcloud.net/track/click2/eNpFj81qwzAQhN9FtDdF3pWiv1v7HKUIWV7HobYULDkESt-9Ij0U5jLDxzDzgVJK47jiDI13ToKxqKQLZ4nSB1RgNQQN7ixqOiGEngWrT9c8liNP8LIcW8x0j2-Xsh-1iUZpYRw4W1q71Vf1PgyXayMSqWwDPW5r2WnYqbuN8vQk57hWYn0AGGG1QBCIiv3nXTFKnJOmWacpjW6cR_LGQ_SWQBtt_6ia2h7Tl6i9Oa3lmESmxvj3D3---fwFUGVFQw==.html\" target=\"_blank\" >最优质的开源项目</a>,对个人开发者 <a  href=\"https://sctrack.sendcloud.net/track/click2/eNpFjs1uwjAQhN_Fam_G2V3_bW7lORCybMclCHAq7PRS8e6N4IA0p28-aeaARORYainQjcwEzqMmDoaQxoAavIVggY1qeYcQNha83Z1rWtY6wce83mItv_HrtNzX1lUveRYSpJh7_2mfej8Mp3MvReXlNjyL73htRWx74JS3CkEhavHmWwDRJgeGSuTsiUeTXEoTG6ZistUvq-V-j_miWqlTvi7rpGrpQv495PP88R-wuT0u.html\" target=\"_blank\" >完全免费</a>(不限公有、私有仓库),同时提供针对团队协作开发场景的企业版(<a  href=\"https://sctrack.sendcloud.net/track/click2/eNpFj0FqwzAQRe8i0p0ia0a2NNm15yhBqKNxbJrIwZK7Kbl7TCgU_urx4PE_ARE9aacV-BMRWh_AIcUeAU8RnA2DjYOl3lQ-go07i2E4zuVr2Uq2h2m7pSI_6f2yrFttpglPSlutptbu9c19dN1lbiKGl1snpcl6X-cq9eWM6VpF7WnrTRgMWAPg1D_fRxlIcHSEPshIKTOPPrsefQ5e-M-q3NbE36ZKyXxdtmyKNKV_H_r14_wEZoVC6w==.html\" target=\"_blank\" >5人以下团队限时免费中</a>),专业、轻量、灵活,让企业研发更流畅、更高效。\n</p>\n<p>\n开始使用 Gitee,您可以参照下述的步骤:\n</p>\n<p>\n<a  href=\"https://sctrack.sendcloud.net/track/click2/eNpFj8tuwyAQRf8FtTsCM2Ae2bXfUVUIhklsxbEjg7up-u-10kWluzo6i3M_0Bjjo7RSoD_HaMAHtCamwaA5J7QQHCQHcVCNTgjpYCm407SUdV8qvIz7PS_8ld-u67a3rjrTKCRIMfb-aK_2Xevr1JkVrXc98vzQeesTzdz0gAae6iXPjcVRAF4FpxAUohX__FhB8iZXcIXoYnMALADZleC4Do7hz2rUt0w31XipNK97VQt3Ib9_5PPO5y8C-0Qk.html\" target=\"_blank\" >创建仓库</a> —— <a  href=\"https://sctrack.sendcloud.net/track/click2/eNpFj8tqwzAURP9FtDtFuldv79rvCEUo0nVs4sjBkrMp_feadFGY1eHAzJxRKeUC15yhG0JQ4DxqFaJRqIaIGryFaCEY0fIJIR4senua62Xda4G3ab-nSs_0cV23vXXRKU-MA2dT74_2rj-lvM6dSOT1LidaHjJtfc4LNWmO7pc6pqUROxaAE94KBIGo2T8_clHjoJMBq5VPBsexhKwzFjLOkQ3pz2q5bynfRKNa8rLuRVTqjH__8Nedr1_wr0Pn.html\" target=\"_blank\" >提交代码</a>\n</p>\n<p>\n我们提供操作指南供您参考:\n<ol>\n<li>\n<a  href=\"https://sctrack.sendcloud.net/track/click2/eNpFj0FuwyAQRe-C2h0BZjB4vGvOEVUIwzi26uAo4G6q3r1uuuju6-kt3r8AInqSVgrwAxEa34NFCh0CDgGs6Z0JzlCnajqBCQcLvTstZdz2ks3LvN9i4c_4dt0ee22qcZqFNFLMrd3rqz1rfV0as0rbTc-83nWKjQ954aoRn-oU18riKDBe9U6BUQBW_PPf2RFxTui9nYbejSNksj4O2E1EI8Y_q6b2iOlDVS45rdueVeEm5Ne3fN55_wEeRUQ4.html\" target=\"_blank\" >帐号管理</a>(个人信息设置、消息通知设置、 SSH 公钥设置等)\n</li>\n<li>\n<a  href=\"https://sctrack.sendcloud.net/track/click2/eNpFj0FOwzAQRe9iwc61Z8ax4-zgHAhZZjI0UVOnqh02iLtjlQXSXz29xftvSEQhaqcVhilGgjCio5gGQpoSOhg9JA9xMJVPCKmzNPrTWj72o8zwtBzXXOQrv5z3-1GbacKL0qDV0tqtPrtXa89rEzG8X-0i281ybtLlVaolfKifeauiegEEM3qDYBCd-ud9kcVNA2XuuT4Dgc-RwQU3DywZ_Z9Vud0zX0yVMvO2H7Mp0pT-_tGPO--_B3RD2A==.html\" target=\"_blank\" >代码管理</a>(克隆/下载代码、克隆 Pull Request、Svn 支持等)\n</li>\n<li>\n<a  href=\"https://sctrack.sendcloud.net/track/click2/eNpFj8tuwyAQRf8FpTsCMxBeu_Y7qghhGMdWHBwF3E3Uf6-VLCrd1dFZnPuNSinrueYMbfBegXWolY8nhSpE1OAMRAP-JFo-IsSdRWeOcx3WrRY4TNstVfpJn5f1sbUuOuWJceBs6v3ePvSXlJe5E4m83uREy13m1GmXZ2pSw0sd09KI7QVghTMCQSBq9s_3FUeDN3pQRY9lcM6VFIJBa8sYsh7D22q5P1K-ika15GXdiqjUGX_-8ted8x81OUSf.html\" target=\"_blank\" >仓库管理</a>(仓库信息设置、仓库成员管理、仓库协作开发等)\n</li>\n<li>\n<a  href=\"https://sctrack.sendcloud.net/track/click2/eNpFj8tOwzAQRf_Fgp3rx4wntnfwHQhZxp42EalT1Q4bxL8TlQXSXR2dxblvFgCmIFEKO8UQwEzeIoTkwEJMFo0nk8gEp3o5WZMOljydlvax7a2ap3m_5sZf-eWy3fc-1OAyC2mkmMe49Wd81fqyDGZVtqueeb3pkgcf8sJdO3qo57x2FkeBmZQnZY2yFsU_PxYCe4eOYnH17KKvBDFyBQxISOz-rF7GPZdP1bnVsm57VY2HkN8_8nHn_Rf6UUOM.html\" target=\"_blank\" >常见问题</a>(Git 操作常见问题、激活/重置密码等)\n</li>\n</ol>\n</p>\n<p>\n使用中如需帮助,您可以加入官方技术交流 QQ 群:777320883 (验证答案:gitee.com)或随时查看 <a  href=\"https://sctrack.sendcloud.net/track/click2/eNpFj8tqwzAQRf9FtDtFnhlZj-za7whF6DGOQxw5RHI2pf9eky4Kd3Xugcs9IRFZL7UUaI_eE1iHmnwYCekYUIMzEAz4UbV8QAg7C84cLjWtWy3wNm-3WPkZP87rY2tddc6zkCDF3Pu9vevPYThfOrPK622Yebm_yikujcW-CVY5oxAUohb_fI815NGMU5lSyclSAqasjXcAGNMIf1bL_RHzVTWuJS_rVlTlLuT3j3wd-PoFAPk_Jg==.html\" target=\"_blank\" >帮助文档</a>。购买企业版:400-606-0201\n</p>\n<p>\nGitee.com\n</p>\n\n\n</div>\n</div>\n<div class='footer'>\n@Gitee.com\n<div class='pull-right'>\n如果你不想再收到类似邮件,可以到\n<a  href=\"https://sctrack.sendcloud.net/track/click2/eNpFj8tuwyAQRf8FtTuCh8E8vGu_I6oQGXCM4kBkcDZV_71Wuqh0V0dnce5ZIqJxXHEmzeQcgrFSofMjSpy8VGA1eA1uFI1OEvzBvNWnXC51LxHelv0eSnqGj2vd9tZFT7QwDpwtvT_au_ochmvuKQmq9-Gx1TmvaSi15zlT6LmW9rLnsLbEjggwwmohQUip2D8_hmlOxkV9cRAUGXSTpUiTG51CpBD-rEZ9C3QTLZVIa92jKKkz_v3DX4--fgGCAkZn.html\"  >这里</a>\n取消\n</div>\n</div>\n</div>\n</div>\n</body>\n</html>\n<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\"><tbody><tr><td align=\"center\" style=\"overflow: hidden;font-size: 0;padding: 0;margin: 0;line-height: 0;\"><img style=\"width:0;height:0\" alt=\"\" src=\"https://sctrack.sendcloud.net/track/open2/eNpFjs0KwjAQhN8leIxhd5PNz833EAlpmlhRUzCtF_HdLXqQmdPHxzBHJCLrpZYCbfCewDrU5KMhpBBRg2OIDN6onvcIcWPR8f7ShnltI-ym9Z5aeabDeX6sfVFLyZOQsEXUdOtFbMNglWOFoBC1-POtplIolUOtZPTAhsfMQRujdXXJcvpZPS-PlK-qlzbm27yOqpVFyNdbfl-ePiJONi8=.gif\"/></td></tr></tbody></table><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\"><tr><td align=\"center\" style=\"padding-top: 10px;\"><div style=\"border-top:1px solid #ddd;padding:10px;\"><a href=\"https://sctrack.sendcloud.net/track/unsubscribe2.do?p=eNptjssOwiAURP-FuKTkXigFdv6HMYTHrTVWmpTWjfHfRReuzMxmzuJkTiilHCxXnOHgrJUwGFTS-l6idB4VGA1eg-1FTR2Cb8wb3V1LXPaS4TDt91DoEY6XZd3rJjZKE-PQwsYwV2JNDIMwWiAIRMV-vEPO2vovYDFAL5M1mSgb57KOIzqiGHodjHIfb2tN2xrSTVQqOc3LnkWhjfHni3__n9-vKEAh\" target=\"_blank\" style=\"display: table-cell;display:inline-block;background:#ddd; border-radius:4px;padding: 3px 15px;color:#a6a6a6;text-decoration:none;font-size:12px;\">点击这里取消订阅<br />click to unsubscribe</a></div></td></tr></table>\n\n\n\r"

Case 3

var raw3 = "Return-Path: <[email protected]>\r\nReceived: from ucmail26.sendcloud.io (ucmail26.sendcloud.io [106.75.2.40])\r\n by inbound-smtp.ap-northeast-1.amazonaws.com with SMTP id tiq9ai479jps62v2b2d82eofa6o0e0ai41as9ug1\r\n for [email protected];\r\n Wed, 01 Nov 2023 06:35:47 +0000 (UTC)\r\nX-SES-Spam-Verdict: PASS\r\nX-SES-Virus-Verdict: PASS\r\nReceived-SPF: pass (spfCheck: domain of mailer.oschina.net designates 106.75.2.40 as permitted sender) client-ip=106.75.2.40; [email protected]; helo=ucmail26.sendcloud.io;\r\nAuthentication-Results: amazonses.com;\r\n spf=pass (spfCheck: domain of mailer.oschina.net designates 106.75.2.40 as permitted sender) client-ip=106.75.2.40; [email protected]; helo=ucmail26.sendcloud.io;\r\n dkim=pass [email protected];\r\n dmarc=pass header.from=mailer.oschina.net;\r\nX-SES-RECEIPT: AEFBQUFBQUFBQUFHQ3JjcGw4UlcrbVBYR3Nna3JqUlBkclBUV1ZlK05pVjMwYlNWbko1S0xEd0t5VGEyUmhhek42RkNsQXpnQ01WZmRuMGtsbXMrTXAzZHl1UXRWWis5U3g3UjJWcFJqVVorWDExWThXWW5BL1dzY1pDOWtEbWxWeEljSEtZWWFLd0V2RjErUVlwcWc4ZCtWUjNUQUxFWFhzQ3R3MWtLc0Z2MFJPQlpZZ2hMeFNONTFGMkZJbHl3NlBIcGdmZTl6N0luNnp1bXYrUXpseHBHODF3N09pYVdYeW1wdWZ3RGdJT0NaMUZIaTY5NFltRVlTUkpROGJXUUpka2lIZW54SjdJMEViWHJ5aU5DYVhXbnRROEwwV2ZJSk5EejJLUHFKYmVBYzg5VG1NQ1B1THc9PQ==\r\nX-SES-DKIM-SIGNATURE: a=rsa-sha256; q=dns/txt; b=igyx6v3jfhUY91gN+0Gu52XVngAJjZl1eOOj6FnEZhQ0GpXCoFplDXOpfX5NY5bNUJ8SPNCjZJ59OcThDFWfPlUqOGZsh6WD/PHCoeY+p0IowYIF2PxzOK3UnAtSuL7WrdUy+yMlSHRHiSWIdT413D/MR8BKh6D1IPtfYqo381k=; c=relaxed/simple; s=zh4gjftm6etwoq6afzugpky45synznly; d=amazonses.com; t=1698820548; v=1; bh=b/j00FHdoascOGo0ZVJfNgGr0ZBbJx2hVaJHo7+QnDY=; h=From:To:Cc:Bcc:Subject:Date:Message-ID:MIME-Version:Content-Type:X-SES-RECEIPT;\r\nDKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;\r\n d=mailer.oschina.net; [email protected]; q=dns/txt; s=mail;\r\n t=1698820545; h=date : from : reply-to : to : message-id : subject :\r\n mime-version : content-type : content-transfer-encoding :\r\n list-unsubscribe : from;\r\n bh=b/j00FHdoascOGo0ZVJfNgGr0ZBbJx2hVaJHo7+QnDY=;\r\n b=gjrDc4qL5AvMGh8O7NP6dYPu7ySkHT93FBexmjD4fRV4bVCtwq5aYGWRA6U7R5hIu2d/r\r\n hxjuCIMZc1MypLugnz7EHisp3pvL1CabWTlhm9SwYtEORvgaMjx9MSdBXN3Yg0raYb3EhvH\r\n EGIb69i/aFre8l4I5VWvk68M77GpF/M=\r\nReceived: from git.oschina.net (Unknown [127.0.0.1])         by SendCloud Inbound Server with ESMTPSA id FB55A9C6-8376-4F9F-B7F8-B24366B48FE6.1         envelope-from <[email protected]> (authenticated bits=0) (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256); Wed, 01 Nov 2023 14:35:44 +0800\r\nDate: Wed, 01 Nov 2023 14:35:44 +0800\r\nFrom: Gitee <[email protected]>\r\nReply-To: Gitee <[email protected]>\r\nTo: [email protected]\r\nMessage-ID: <1698820545011_42129_130764_8029.sc-10_9_1_75-inbound0@mailer.oschina.net>\r\nSubject: =?utf-8?b?R2l0ZWUgfCDms6jlhowgR2l0ZWUg6YKu566x6aqM6K+B?=\r\nMime-Version: 1.0\r\nContent-Type: text/html; charset=\"UTF-8\"\r\nContent-Transfer-Encoding: quoted-printable\r\nX-SENDCLOUD-UUID: 1698820545011_42129_130764_8029.sc-10_9_1_75-inbound0$humaneva@techboy.io\r\nX-SENDCLOUD-LOG: 1698820545011_42129_130764_8029.sc-10_9_1_75-inbound0$humaneva@techboy.io#[email protected]#122268#42129#0#false#false#3#-1#\r\nX-SENDCLOUD-LOG-NEW: MTY5ODgyMDU0NTAxMV80MjEyOV8xMzA3NjRfODAyOS5zYy0xMF85XzFfNzUtaW5ib3VuZDAkaHVtYW5ldmFAZ29ydXN0LnRlY2gjaHVtYW5ldmFAZ29ydXN0LnRlY2gjMTIyMjY4IzQyMTI5IzAjZmFsc2UjZmFsc2UjMyMtMSM=\r\nList-Unsubscribe: <mailto:0_122268_1698820545011_42129_130764_8029.sc-10_9_1_75-inbound0@mailer.oschina.net>\r\n\r\n<html lang=3D'zh-CN'>\r\n<head>\r\n<meta content=3D'text/html; charset=3Dutf-8' http-equiv=3D'Content-Type'>\r\n<title>Gitee</title>\r\n</meta>\r\n<style>\r\n  .email-body {\r\n    color: #40485B;\r\n    font-size: 14px;\r\n    font-family: -apple-system, \"Helvetica Neue\", Helvetica, \"Nimbus Sans L=\r\n\", \"Segoe UI\", Arial, \"Liberation Sans\", \"PingFang SC\", \"Microsoft YaHei\", =\r\n\"Hiragino Sans GB\", \"Wenquanyi Micro Hei\", \"WenQuanYi Zen Hei\", \"ST Heiti\",=\r\n SimHei, \"WenQuanYi Zen Hei Sharp\", sans-serif;\r\n    background: #f8f8f8; }\r\n =20\r\n  .pull-right {\r\n    float: right; }\r\n =20\r\n  a {\r\n    color: #FE7300;\r\n    text-decoration: underline; }\r\n    a:hover {\r\n      color: #fe9d4c; }\r\n    a:active {\r\n      color: #b15000; }\r\n =20\r\n  .logo {\r\n    text-align: center;\r\n    margin-bottom: 20px; }\r\n =20\r\n  .panel {\r\n    background: #fff;\r\n    border: 1px solid #E3E9ED;\r\n    margin-bottom: 10px; }\r\n =20\r\n  .panel-header {\r\n    font-size: 18px;\r\n    line-height: 30px;\r\n    padding: 10px 20px;\r\n    background: #fcfcfc;\r\n    border-bottom: 1px solid #E3E9ED; }\r\n =20\r\n  .panel-body {\r\n    padding: 20px;\r\n    line-height: 1.7; }\r\n =20\r\n  .container {\r\n    width: 100%;\r\n    max-width: 600px;\r\n    padding: 20px;\r\n    margin: 0 auto; }\r\n =20\r\n  .text-center {\r\n    text-align: center; }\r\n =20\r\n  .thumbnail {\r\n    padding: 4px;\r\n    max-width: 100%;\r\n    border: 1px solid #E3E9ED; }\r\n =20\r\n  .btn-primary {\r\n    color: #fff;\r\n    font-size: 16px;\r\n    padding: 8px 14px;\r\n    line-height: 20px;\r\n    border-radius: 2px;\r\n    display: inline-block;\r\n    background: #FE7300;\r\n    text-decoration: none; }\r\n    .btn-primary:hover, .btn-primary:active {\r\n      color: #fff; }\r\n =20\r\n  .footer {\r\n    color: #9B9B9B;\r\n    font-size: 12px;\r\n    margin-top: 20px; }\r\n    .footer a {\r\n      color: #9B9B9B; }\r\n      .footer a:hover {\r\n        color: #fe9d4c; }\r\n      .footer a:active {\r\n        color: #b15000; }\r\n =20\r\n  .email-body#mail_to_teacher {\r\n    line-height: 26px;\r\n    color: #40485B;\r\n    font-size: 16px;\r\n    padding: 0px; }\r\n    .email-body#mail_to_teacher .container,\r\n    .email-body#mail_to_teacher .panel-body {\r\n      padding: 0px; }\r\n    .email-body#mail_to_teacher .container {\r\n      padding-top: 20px; }\r\n    .email-body#mail_to_teacher .textarea {\r\n      padding: 32px; }\r\n    .email-body#mail_to_teacher .say-hi {\r\n      font-weight: 500; }\r\n    .email-body#mail_to_teacher .paragraph {\r\n      margin-top: 24px; }\r\n      .email-body#mail_to_teacher .paragraph .pro-name {\r\n        color: #000000; }\r\n    .email-body#mail_to_teacher .paragraph.link {\r\n      margin-top: 32px;\r\n      text-align: center; }\r\n      .email-body#mail_to_teacher .paragraph.link .button {\r\n        background: #4A90E2;\r\n        border-radius: 2px;\r\n        color: #FFFFFF;\r\n        text-decoration: none;\r\n        padding: 11px 17px;\r\n        line-height: 14px;\r\n        display: inline-block; }\r\n    .email-body#mail_to_teacher ul.pro-desc {\r\n      list-style-type: none;\r\n      margin: 0px;\r\n      padding: 0px;\r\n      padding-left: 16px; }\r\n      .email-body#mail_to_teacher ul.pro-desc li {\r\n        position: relative; }\r\n      .email-body#mail_to_teacher ul.pro-desc li::before {\r\n        content: '';\r\n        width: 3px;\r\n        height: 3px;\r\n        border-radius: 50%;\r\n        background: red;\r\n        position: absolute;\r\n        left: -15px;\r\n        top: 11px;\r\n        background: #40485B; }\r\n    .email-body#mail_to_teacher .blackboard-area {\r\n      height: 600px;\r\n      padding: 40px;\r\n      background-image: url(https://gitee.com/wewin11235/upload-gitee-image=\r\n/raw/master/bg.jpg);\r\n      color: #FFFFFF; }\r\n      .email-body#mail_to_teacher .blackboard-area .big-title {\r\n        font-size: 32px;\r\n        line-height: 45px;\r\n        text-align: center; }\r\n      .email-body#mail_to_teacher .blackboard-area .desc {\r\n        margin-top: 8px; }\r\n      .email-body#mail_to_teacher .blackboard-area .desc p {\r\n        margin: 0px;\r\n        text-align: center;\r\n        line-height: 28px; }\r\n      .email-body#mail_to_teacher .blackboard-area .card:nth-child(odd) {\r\n        float: left;\r\n        margin-top: 45px; }\r\n      .email-body#mail_to_teacher .blackboard-area .card:nth-child(even) {\r\n        float: right;\r\n        margin-top: 45px; }\r\n      .email-body#mail_to_teacher .blackboard-area .card .title {\r\n        font-size: 18px;\r\n        text-align: center;\r\n        margin-bottom: 10px; }\r\n</style>\r\n\r\n</head>\r\n<body>\r\n<div class=3D'email-body'>\r\n<div class=3D'container'>\r\n<div class=3D'logo'>\r\n<img height=3D\"30\" src=3D\"https://gitee.com//static/images/logo-black.svg\" =\r\nalt=3D\"Logo black\" />\r\n</div>\r\n<div class=3D'panel'>\r\n<div class=3D'panel-header'>\r\n=E6=B3=A8=E5=86=8C=E9=AA=8C=E8=AF=81\r\n\r\n</div>\r\n<div class=3D'panel-body'>\r\n<p>=E6=82=A8=E5=A5=BD [email protected]=EF=BC=81</p>\r\n<p>=E6=AC=A2=E8=BF=8E=E6=B3=A8=E5=86=8C Gitee=EF=BC=8C=E8=AF=B7=E5=B0=86=E9=\r\n=AA=8C=E8=AF=81=E7=A0=81=E5=A1=AB=E5=86=99=E5=88=B0=E6=B3=A8=E5=86=8C=E9=A1=\r\n=B5=E9=9D=A2=E3=80=82</p>\r\n<p>=E9=AA=8C=E8=AF=81=E7=A0=81=EF=BC=9A113363</p>\r\n<p>=E8=AF=86=E5=88=AB=E7=A0=81=EF=BC=9AAPJ</p>\r\n\r\n</div>\r\n</div>\r\n<div class=3D'footer'>\r\n@Gitee.com\r\n<div class=3D'pull-right'>\r\n</div>\r\n</div>\r\n</div>\r\n</div>\r\n</body>\r\n</html>\r\n<table cellpadding=3D\"0\" cellspacing=3D\"0\" border=3D\"0\" width=3D\"100%\"><tbo=\r\ndy><tr><td align=3D\"center\" style=3D\"overflow: hidden;font-size: 0;padding:=\r\n 0;margin: 0;line-height: 0;\"><img style=3D\"width:0;height:0\" alt=3D\"\" src=\r\n=3D\"https://sctrack.sendcloud.net/track/open2/eNpFjksKAjEQRO8SXGZCp_PfeQ-RE=\r\nJPWETUDk4wb8e4GXUjV6vEo6iAR0XquOJM2eI9gtAEpo0aJIUoFzuroAYNoeZIQB4vOTNd6WrZa=\r\nYDdvj1TpmfaXZd1aF53yzDiMsHO6N2JjGKxwRqDQwP50FCkUTAVcIemKJWM8BlUIMKGjpH5Wy31=\r\nN-SYa1ZLvy1ZEpc74682_H48f02w2GA=3D=3D.gif\"/></td></tr></tbody></table><tabl=\r\ne cellpadding=3D\"0\" cellspacing=3D\"0\" border=3D\"0\" width=3D\"100%\"><tr><td a=\r\nlign=3D\"center\" style=3D\"padding-top: 10px;\"><div style=3D\"border-top:1px s=\r\nolid #ddd;padding:10px;\"><a href=3D\"https://sctrack.sendcloud.net/track/uns=\r\nubscribe2.do?p=3DeNptjs0KwjAQhN9l8ZiGzTa_N99DJKSbaEVNoWm9iO9u6cGTzGk--IY5KS=\r\nKyXvQClA3eExptUKmoSVGIqkdndfRIQTbuFMaNRWe6Wx2mtWY8jOsz1fJKx-s0r22RS-ERBG6BS=\r\n3q0AtswWumMJKkRfrRTArb2X4eCQw59X7zNzrmcGZ1mXzh4Q5qDhl1uvMyJ77KVmvkxrVnWsoB4=\r\nf8T-_vwFI2k_CA%3D%3D\" target=3D\"_blank\" style=3D\"display: table-cell;displa=\r\ny:inline-block;background:#ddd; border-radius:4px;padding: 3px 15px;color:#=\r\na6a6a6;text-decoration:none;font-size:12px;\">=E7=82=B9=E5=87=BB=E8=BF=99=E9=\r\n=87=8C=E5=8F=96=E6=B6=88=E8=AE=A2=E9=98=85<br />click to unsubscribe</a></d=\r\niv></td></tr></table>\r\n\r\n\r\n\r\n"

Same issue, only got:

var HTML = "<html lang='zh-CN'>\n<head>\n<meta content='text/html; charset=utf-8' http-equiv='Content-Type'>\n<title>Gitee</title>\n</meta>\n<style>\n  .email-body {\n    color: #40485B;\n    font-size: 14px;\n    font-family: -apple-system, \"Helvetica Neue\", Helvetica, \"Nimbus Sans L\", \"Segoe UI\", Arial, \"Liberation Sans\", \"PingFang SC\", \"Microsoft YaHei\", \"Hiragino Sans GB\", \"Wenquanyi Micro Hei\", \"WenQuanYi Zen Hei\", \"ST Heiti\", SimHei, \"WenQuanYi Zen Hei Sharp\", sans-serif;\n    background: #f8f8f8; }\n  \n  .pull-right {\n    float: right; }\n  \n  a {\n    color: #FE7300;\n    text-decoration: underline; }\n    a:hover {\n      color: #fe9d4c; }\n    a:active {\n      color: #b15000; }\n  \n  .logo {\n    text-align: center;\n    margin-bottom: 20px; }\n  \n  .panel {\n    background: #fff;\n    border: 1px solid #E3E9ED;\n    margin-bottom: 10px; }\n  \n  .panel-header {\n    font-size: 18px;\n    line-height: 30px;\n    padding: 10px 20px;\n    background: #fcfcfc;\n    border-bottom: 1px solid #E3E9ED; }\n  \n  .panel-body {\n    padding: 20px;\n    line-height: 1.7; }\n  \n  .container {\n    width: 100%;\n    max-width: 600px;\n    padding: 20px;\n    margin: 0 auto; }\n  \n  .text-center {\n    text-align: center; }\n  \n  .thumbnail {\n    padding: 4px;\n    max-width: 100%;\n    border: 1px solid #E3E9ED; }\n  \n  .btn-primary {\n    color: #fff;\n    font-size: 16px;\n    padding: 8px 14px;\n    line-height: 20px;\n    border-radius: 2px;\n    display: inline-block;\n    background: #FE7300;\n    text-decoration: none; }\n    .btn-primary:hover, .btn-primary:active {\n      color: #fff; }\n  \n  .footer {\n    color: #9B9B9B;\n    font-size: 12px;\n    margin-top: 20px; }\n    .footer a {\n      color: #9B9B9B; }\n      .footer a:hover {\n        color: #fe9d4c; }\n      .footer a:active {\n        color: #b15000; }\n  \n  .email-body#mail_to_teacher {\n    line-height: 26px;\n    color: #40485B;\n    font-size: 16px;\n    padding: 0px; }\n    .email-body#mail_to_teacher .container,\n    .email-body#mail_to_teacher .panel-body {\n      padding: 0px; }\n    .email-body#mail_to_teacher .container {\n      padding-top: 20px; }\n    .email-body#mail_to_teacher .textarea {\n      padding: 32px; }\n    .email-body#mail_to_teacher .say-hi {\n      font-weight: 500; }\n    .email-body#mail_to_teacher .paragraph {\n      margin-top: 24px; }\n      .email-body#mail_to_teacher .paragraph .pro-name {\n        color: #000000; }\n    .email-body#mail_to_teacher .paragraph.link {\n      margin-top: 32px;\n      text-align: center; }\n      .email-body#mail_to_teacher .paragraph.link .button {\n        background: #4A90E2;\n        border-radius: 2px;\n        color: #FFFFFF;\n        text-decoration: none;\n        padding: 11px 17px;\n        line-height: 14px;\n        display: inline-block; }\n    .email-body#mail_to_teacher ul.pro-desc {\n      list-style-type: none;\n      margin: 0px;\n      padding: 0px;\n      padding-left: 16px; }\n      .email-body#mail_to_teacher ul.pro-desc li {\n        position: relative; }\n      .email-body#mail_to_teacher ul.pro-desc li::before {\n        content: '';\n        width: 3px;\n        height: 3px;\n        border-radius: 50%;\n        background: red;\n        position: absolute;\n        left: -15px;\n        top: 11px;\n        background: #40485B; }\n    .email-body#mail_to_teacher .blackboard-area {\n      height: 600px;\n      padding: 40px;\n      background-image: url(https://gitee.com/wewin11235/upload-gitee-image/raw/master/bg.jpg);\n      color: #FFFFFF; }\n      .email-body#mail_to_teacher .blackboard-area .big-title {\n        font-size: 32px;\n        line-height: 45px;\n        text-align: center; }\n      .email-body#mail_to_teacher .blackboard-area .desc {\n        margin-top: 8px; }\n      .email-body#mail_to_teacher .blackboard-area .desc p {\n        margin: 0px;\n        text-align: center;\n        line-height: 28px; }\n      .email-body#mail_to_teacher .blackboard-area .card:nth-child(odd) {\n        float: left;\n        margin-top: 45px; }\n      .email-body#mail_to_teacher .blackboard-area .card:nth-child(even) {\n        float: right;\n        margin-top: 45px; }\n      .email-body#mail_to_teacher .blackboard-area .card .title {\n        font-size: 18px;\n        text-align: center;\n        margin-bottom: 10px; }\n</style>\n\n</head>\n<body>\n<div class='email-body'>\n<div class='container'>\n<div class='logo'>\n<img height=\"30\" src=\"https://gitee.com//static/images/logo-black.svg\" alt=\"Logo black\" />\n</div>\n<div class='panel'>\n<div class='panel-header'>\n注册验证\n\n</div>\n<div class='panel-body'>\n<p>您好 [email protected]!</p>\n<p>欢迎注册 Gitee,请将验证码填写到注册页面。</p>\n<p>验证码:113363</p>\n<p>识别码:APJ</p>\n\n</div>\n</div>\n<div class='footer'>\n@Gitee.com\n<div class='pull-right'>\n</div>\n</div>\n</div>\n</div>\n</body>\n</html>\n<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\"><tbody><tr><td align=\"center\" style=\"overflow: hidden;font-size: 0;padding: 0;margin: 0;line-height: 0;\"><img style=\"width:0;height:0\" alt=\"\" src=\"https://sctrack.sendcloud.net/track/open2/eNpFjksKAjEQRO8SXGZCp_PfeQ-REJPWETUDk4wb8e4GXUjV6vEo6iAR0XquOJM2eI9gtAEpo0aJIUoFzuroAYNoeZIQB4vOTNd6WrZaYDdvj1TpmfaXZd1aF53yzDiMsHO6N2JjGKxwRqDQwP50FCkUTAVcIemKJWM8BlUIMKGjpH5Wy31N-SYa1ZLvy1ZEpc74682_H48f02w2GA==.gif\"/></td></tr></tbody></table><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\"><tr><td align=\"center\" style=\"padding-top: 10px;\"><div style=\"border-top:1px solid #ddd;padding:10px;\"><a href=\"https://sctrack.sendcloud.net/track/unsubscribe2.do?p=eNptjs0KwjAQhN9l8ZiGzTa_N99DJKSbaEVNoWm9iO9u6cGTzGk--IY5KSKyXvQClA3eExptUKmoSVGIqkdndfRIQTbuFMaNRWe6Wx2mtWY8jOsz1fJKx-s0r22RS-ERBG6BS3q0AtswWumMJKkRfrRTArb2X4eCQw59X7zNzrmcGZ1mXzh4Q5qDhl1uvMyJ77KVmvkxrVnWsoB4f8T-_vwFI2k_CA%3D%3D\" target=\"_blank\" style=\"display: table-cell;display:inline-block;background:#ddd; border-radius:4px;padding: 3px 15px;color:#a6a6a6;text-decoration:none;font-size:12px;\">点击这里取消订阅<br />click to unsubscribe</a></div></td></tr></table>\n\n\n\r"

decodeHeader panics on label = windows-874

Hello!

I've got a panic here.
CharsetReader got "windows-874" as label, turns it into "cp874" and go lookup. But the correct name for this encoding is "windows-874" (according to "htmlindex" package, at least). So enc is nil, so a call to enc.NewDecoder() panics.

suggestions for a fix are:

  1. do charset.Lookup the strings.replce-d version of a label, if no encoder found (enc == nil) - try again with non-replaced version of a label, also add a check for a nil encoder as well (flexible solution);
  2. just check for if enc == nil and return "cannot find MIME-word-encoded for label" error (strict solution);
  3. special case for windows-784 encoding (bad solution);

If we agree on the solution, I could do a PR with fixes.

Thanks!

Bugfix: parsing text/plain attachments

When an email contain a text/plain attachments it will not parse it as though, instead the parser will treat as normal text and will put the data in the text body of the email. I suppose the same will happen for text/html files also.

In the parsePart function on parsers.go file it checks the content type and only if it doesn't match any of the conditional content types it will treat it as an attachment. I think that it should check if we're dealing with an attachment first before moving forward with the other checks. I did a code fix locally with testing also, but can't push to a new branch to create a PR for it.

Feature request: Ignore malformed headers

One sender is sending emails with headers such as:
X-Script/function: OrderConfirmationEmailService
and
X-Script/function: /Object/UserEmail.cfc/sendUserEmail

This results in errors:
letters.ParseEmail: cannot read message: malformed MIME header line: X-Script/function: OrderConfirmationEmailService

It would be nice if we could have the option to ignore malformed headers that aren't critical to extracting data from the email.

cannot parse part "multipart/mixed" with boundary

Part of eml-file

`X-MS-Exchange-Organization-Processed-By-Gcc-Journaling: Journal Agent
Content-Type: multipart/mixed;
boundary="a5093c80-52fc-4ad9-bca7-3906fe47922d"

--a5093c80-52fc-4ad9-bca7-3906fe47922d
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable`

code

email, err := letters.ParseEmail(r) if err != nil { log.Fatal(err) }

output

letters.parsers.parsePart: cannot parse Content-Disposition: letters.parsers.parseContentDisposition: unknown Content-Disposition "attachfile"

Normaly letters works fine.
It seems a special structure of this emails
I have some eml-files to produce the error. (Only via private mail)

workaround

(with standard go libraries isit possible to extract attachments without errors)

`package main

import (
"encoding/base64"
"fmt"
"io"
"mime"
"mime/multipart"
"net/mail"
"os"
"strings"
)

func main() {

emlFile, err := os.Open(`test.eml`)
if err != nil {
	panic(err)
}
defer emlFile.Close()


msg, err := mail.ReadMessage(emlFile)
if err != nil {
	panic(err)
}

// Get MIME-Typ
mediaType, params, err := mime.ParseMediaType(msg.Header.Get("Content-Type"))
if err != nil {
	panic(err)
}

//  multipart-message?
if strings.HasPrefix(mediaType, "multipart/") {
	mr := multipart.NewReader(msg.Body, params["boundary"])
	for {
		p, err := mr.NextPart()
		if err == io.EOF {
			break
		}
		if err != nil {
			panic(err)
		}

		if cd := p.Header.Get("Content-Disposition"); strings.Contains(cd, "attachFile") {
			filename := p.FileName()

			//  Content-Transfer-Encoding-Header
			var reader io.Reader
			switch p.Header.Get("Content-Transfer-Encoding") {
			case "base64":
				reader = base64.NewDecoder(base64.StdEncoding, p)
			default:
				reader = p
			}

			data, err := io.ReadAll(reader)
			if err != nil {
				panic(err)
			}

			// save attachment to file
			err = os.WriteFile(filename, data, 0644)
			if err != nil {
				panic(err)
			}
			fmt.Printf("attachment %s saved\n", filename)
		}
	}
}

}
`

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.