Backport 58594:
Issue #1307, patch by Derek Shockey.
When "MAIL" is received without args, an exception happens instead of
sending a 501 syntax error response.
diff --git a/Lib/smtpd.py b/Lib/smtpd.py
index c656ec7..4aa3476 100755
--- a/Lib/smtpd.py
+++ b/Lib/smtpd.py
@@ -221,7 +221,7 @@
 
     def smtp_MAIL(self, arg):
         print >> DEBUGSTREAM, '===> MAIL', arg
-        address = self.__getaddr('FROM:', arg)
+        address = self.__getaddr('FROM:', arg) if arg else None
         if not address:
             self.push('501 Syntax: MAIL FROM:<address>')
             return
diff --git a/Misc/NEWS b/Misc/NEWS
index a391219..4cc936d 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -32,6 +32,8 @@
 Library
 -------
 
+- Bug #1307: Fix smtpd so it doesn't raise an exception when there is no arg.
+
 - ctypes will now work correctly on 32-bit systems when Python is
   configured with --with-system-ffi.