diff --git a/.travis.yml b/.travis.yml
index b1716fadf571cd3e32a279569040169022455b87..fc2c235ec84f283d0e3d2d15112fe5e88baa6ad3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,9 +10,9 @@ addons:
 
 matrix:
   include:
-    - python: 3.9
+    - python: 3.11
       env: TOXENV=lint
-    - python: 3.9
+    - python: 3.11
       env: TOXENV=cover
     - python: 3.7
       env: TOXENV=py37
@@ -20,12 +20,20 @@ matrix:
       env: TOXENV=py38
     - python: 3.9
       env: TOXENV=py39
+    - python: 3.10
+      env: TOXENV=py310
+    - python: 3.11
+      env: TOXENV=py311
     - python: 3.7
       env: TOXENV=py37-uvloop
     - python: 3.8
       env: TOXENV=py38-uvloop
     - python: 3.9
       env: TOXENV=py39-uvloop
+    - python: 3.10
+      env: TOXENV=py310-uvloop
+    - python: 3.11
+      env: TOXENV=py311-uvloop
 install:
   - "sudo -H env PYTHON=\"$(command -v python)\" tests/install.debian.sh"
 script:
diff --git a/tox.ini b/tox.ini
index f4378349a7f2fc058a507fe6ab381ffa221961ed..990bcedf30fea0aa746588adeb43b8be359d3805 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,23 +1,23 @@
 [tox]
-envlist = py{37,38,39}, py{37,38,39}-uvloop, lint, cover
+envlist = py{37,38,39,310,311}, py{37,38,39,310,311}-uvloop, lint, cover
 skipsdist = true
 
 [testenv]
 passenv = TOXENV
 commands =
-    py{37,38,39}: pip install -e '.[dev,sqlite,redis,postgres]'
-    py{37,38,39}-uvloop: pip install -e '.[dev,sqlite,redis,postgres,uvloop]'
+    py{37,38,39,310,311}: pip install -e '.[dev,sqlite,redis,postgres]'
+    py{37,38,39,310,311}-uvloop: pip install -e '.[dev,sqlite,redis,postgres,uvloop]'
     pytest .
 
 [testenv:lint]
-basepython = python3.9
+basepython = python3.11
 commands =
     pip install -e '.[dev,sqlite,redis]'
     pylint --reports=n --rcfile=.pylintrc postfix_mta_sts_resolver
 
 [testenv:cover]
 passenv = TOXENV
-basepython = python3.9
+basepython = python3.11
 commands =
     pip install -e ".[dev,sqlite,redis,postgres]"
     pytest --cov . --cov-append --cov-report= .