diff --git a/mail_max_errors.t b/mail_max_errors.t
new file mode 100644
index 0000000..f6f0171
--- /dev/null
+++ b/mail_max_errors.t
@@ -0,0 +1,128 @@
+#!/usr/bin/perl
+
+# (C) Maxim Dounin
+# (C) Nginx, Inc.
+
+# Tests for mail max_errors.
+
+###############################################################################
+
+use warnings;
+use strict;
+
+use Test::More;
+use Socket qw/ CRLF /;
+
+BEGIN { use FindBin; chdir($FindBin::Bin); }
+
+use lib 'lib';
+use Test::Nginx;
+use Test::Nginx::IMAP;
+use Test::Nginx::POP3;
+use Test::Nginx::SMTP;
+
+###############################################################################
+
+select STDERR; $| = 1;
+select STDOUT; $| = 1;
+
+local $SIG{PIPE} = 'IGNORE';
+
+my $t = Test::Nginx->new()->has(qw/mail imap pop3 smtp/)
+	->write_file_expand('nginx.conf', <<'EOF');
+
+%%TEST_GLOBALS%%
+
+daemon off;
+
+events {
+}
+
+mail {
+    auth_http  http://127.0.0.1:8080; # unused
+
+    max_errors 2;
+
+    server {
+        listen     127.0.0.1:8143;
+        protocol   imap;
+    }
+
+    server {
+        listen     127.0.0.1:8110;
+        protocol   pop3;
+    }
+
+    server {
+        listen     127.0.0.1:8025;
+        protocol   smtp;
+    }
+}
+
+EOF
+
+$t->try_run('no max_errors')->plan(18);
+
+###############################################################################
+
+# imap
+
+my $s = Test::Nginx::IMAP->new();
+$s->read();
+
+$s->send('a01 FOO');
+$s->check(qr/^a01 BAD/, 'imap first error');
+$s->send('a02 BAR');
+$s->check(qr/^a02 BAD/, 'imap second error');
+$s->send('a03 BAZZ');
+$s->check(qr/^$/, 'imap max errors');
+
+$s = Test::Nginx::IMAP->new();
+$s->read();
+
+$s->send('a01 FOO' . CRLF . 'a02 BAR' . CRLF . 'a03 BAZZ');
+$s->check(qr/^a01 BAD/, 'imap pipelined first error');
+$s->check(qr/^a02 BAD/, 'imap pipelined second error');
+$s->check(qr/^$/, 'imap pipelined max errors');
+
+# pop3
+
+$s = Test::Nginx::POP3->new();
+$s->read();
+
+$s->send('FOO');
+$s->check(qr/^-ERR/, 'pop3 first error');
+$s->send('BAR');
+$s->check(qr/^-ERR/, 'pop3 second error');
+$s->send('BAZZ');
+$s->check(qr/^$/, 'pop3 max errors');
+
+$s = Test::Nginx::POP3->new();
+$s->read();
+
+$s->send('FOO' . CRLF . 'BAR' . CRLF . 'BAZZ');
+$s->check(qr/^-ERR/, 'pop3 pipelined first error');
+$s->check(qr/^-ERR/, 'pop3 pipelined second error');
+$s->check(qr/^$/, 'pop3 pipelined max errors');
+
+# smtp
+
+$s = Test::Nginx::SMTP->new();
+$s->read();
+
+$s->send('FOO');
+$s->check(qr/^5.. /, 'smtp first error');
+$s->send('BAR');
+$s->check(qr/^5.. /, 'smtp second error');
+$s->send('BAZZ');
+$s->check(qr/^$/, 'smtp max errors');
+
+$s = Test::Nginx::SMTP->new();
+$s->read();
+
+$s->send('FOO' . CRLF . 'BAR' . CRLF . 'BAZZ');
+$s->check(qr/^5.. /, 'smtp pipelined first error');
+$s->check(qr/^5.. /, 'smtp pipelined second error');
+$s->check(qr/^$/, 'smtp pipelined max errors');
+
+###############################################################################
