diff --git a/addons/point_of_sale/tools/posbox/overwrite_before_init/etc/init_posbox_image.sh b/addons/point_of_sale/tools/posbox/overwrite_before_init/etc/init_posbox_image.sh
index f8c37d118a10cb3708d8ed08755529aa1c5fbd36..ab8431ebe46891d16033a48af4c1495f42f8a089 100755
--- a/addons/point_of_sale/tools/posbox/overwrite_before_init/etc/init_posbox_image.sh
+++ b/addons/point_of_sale/tools/posbox/overwrite_before_init/etc/init_posbox_image.sh
@@ -51,7 +51,6 @@ PKGS_TO_INSTALL="
     python3-decorator \
     python3-dev \
     python3-docutils \
-    python3-html2text \
     python3-jinja2 \
     python3-ldap \
     python3-libsass \
diff --git a/debian/control b/debian/control
index 0e1177d906f53a4f1524299d44382d10e5e02c54..7ae8832758b9c10d1c69c96c9e9eb608549fc29c 100644
--- a/debian/control
+++ b/debian/control
@@ -27,7 +27,6 @@ Depends:
  python3-decorator,
  python3-docutils,
  python3-freezegun,
- python3-html2text,
  python3-pil,
  python3-jinja2,
  python3-libsass,
diff --git a/odoo/addons/base/models/ir_mail_server.py b/odoo/addons/base/models/ir_mail_server.py
index b9d22531629925f5f9d41034719e15fa6a73734e..edb9570ca650ec39332934b08d00deb07dcfe0e9 100644
--- a/odoo/addons/base/models/ir_mail_server.py
+++ b/odoo/addons/base/models/ir_mail_server.py
@@ -14,7 +14,6 @@ from ssl import SSLError
 import sys
 import threading
 
-import html2text
 import idna
 
 from odoo import api, fields, models, tools, _
@@ -325,7 +324,7 @@ class IrMailServer(models.Model):
 
         email_body = ustr(body)
         if subtype == 'html' and not body_alternative:
-            msg.add_alternative(html2text.html2text(email_body), subtype='plain', charset='utf-8')
+            msg.add_alternative(tools.html2plaintext(email_body), subtype='plain', charset='utf-8')
             msg.add_alternative(email_body, subtype=subtype, charset='utf-8')
         elif body_alternative:
             msg.add_alternative(ustr(body_alternative), subtype=subtype_alternative, charset='utf-8')
diff --git a/odoo/addons/base/tests/test_ir_mail_server.py b/odoo/addons/base/tests/test_ir_mail_server.py
index 0af3292686f751883568a000a541a038c4b44377..ae1917e24ebd83cfcc2422b6aa8a9c20c47aa410 100644
--- a/odoo/addons/base/tests/test_ir_mail_server.py
+++ b/odoo/addons/base/tests/test_ir_mail_server.py
@@ -22,8 +22,8 @@ class TestIrMailServer(TransactionCase):
             'content',
             'content',
             'content',
-            "test1\n\n**test2**\n\n_test3_\n\n_test4_\n\n~~test5~~\n\ntest6\n\n  * test7\n  * test8\n\n  1. test9\n  2. test10\n\n> test11\n\n> > test12\n>>\n\n>>  \n>\n\n[google](http://google.com) [test link](javascript:alert\('malicious code'\))",
-            'On 01/05/2016 10:24 AM, Raoul Poilvache wrote:  \n\n> **_Test reply. The suite._**  \n>\n>\n>  \n>\n>\n> \--  \n>\n>\n> Raoul Poilvache\n\nTop cool !!!  \n  \n\n    \n    \n    -- \n    Raoul Poilvache\n    ',
+            "test1\n*test2*\ntest3\ntest4\ntest5\ntest6   test7\ntest8    test9\ntest10\ntest11\ntest12\ngoogle [1]\ntest link [2]\n\n\n[1] http://google.com\n[2] javascript:alert('malicious code')",
+            'On 01/05/2016 10:24 AM, Raoul\nPoilvache wrote:\n\n* Test reply. The suite. *\n\n--\nRaoul Poilvache\n\nTop cool !!!\n\n--\nRaoul Poilvache',
         ]
         for body, expected in zip(bodies, expected_list):
             message = self.env['ir.mail_server'].build_email(
diff --git a/requirements.txt b/requirements.txt
index e63f2baf8a144c7f8eb9fea2068933bb478bf6b7..b46ed6a3370611ac4f06d3cbf672406e91109f2d 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -12,7 +12,6 @@ gevent==1.4.0 ; sys_platform == 'win32' and python_version < '3.7'
 greenlet==0.4.10 ; python_version < '3.7'
 greenlet==0.4.15 ; python_version == '3.7'
 greenlet==0.4.17 ; python_version > '3.7'
-html2text==2018.1.9
 idna==2.6
 Jinja2==2.10.1; python_version < '3.8'
 # bullseye version, focal patched 2.10
diff --git a/setup.cfg b/setup.cfg
index f09984b2ddf765d99fbfd8ed6d8ad5431305ee64..51c9bae80ace650ecc232bab327413095acc7f22 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -15,7 +15,6 @@ requires =
   python3-freezegun
   python3-gevent
   python3-greenlet
-  python3-html2text
   python3-idna
   python3-jinja2
   python3-lxml
diff --git a/setup.py b/setup.py
index b3d042d3689bdc606a1b8048dad3abc894e29364..957496a1889aecad6d9b5dc2a90a629dd44d3475 100644
--- a/setup.py
+++ b/setup.py
@@ -27,7 +27,6 @@ setup(
         'decorator',
         'docutils',
         'gevent',
-        'html2text',
         'idna',
         'Jinja2',
         'lxml',  # windows binary http://www.lfd.uci.edu/~gohlke/pythonlibs/
diff --git a/setup/package.dfdebian b/setup/package.dfdebian
index d0a8c2e4981bd55229b13fae0dcd32a69a4e7f15..a91feed55e0606acf1fe8f032858185c748d82f8 100644
--- a/setup/package.dfdebian
+++ b/setup/package.dfdebian
@@ -28,7 +28,6 @@ RUN apt-get update -qq &&  \
         python3-decorator \
         python3-docutils \
         python3-gevent \
-        python3-html2text \
         python3-pil \
         python3-jinja2 \
         python3-libsass \
diff --git a/setup/package.dffedora b/setup/package.dffedora
index bdff72869888784c40530739b721eff75a5a5bf7..acf301f25fc604278828defa4772e400c3b586ac 100644
--- a/setup/package.dffedora
+++ b/setup/package.dffedora
@@ -21,7 +21,6 @@ RUN dnf update -d 0 -e 0 -y && \
         python3-freezegun \
         python3-gevent \
         python3-greenlet \
-        python3-html2text \
         python3-idna \
         python3-jinja2 \
         python3-lxml \