{"thread":{"id":"1289","subject":"[PATCH 1/1] Add authentication capability to the mail command.","startedAt":"2005-07-21T20:22:06Z","lastAt":"2005-07-21T20:22:06Z","messageCount":1,"participants":["Bryan larsen"],"isPatch":true,"patchVersion":1,"patchTotal":1},"messages":[{"id":"6298","messageId":"20050721202206.8119.61954.stgit@h164.c77.b0.tor.eicat.ca","threadId":"1289","inReplyTo":null,"subject":"[PATCH 1/1] Add authentication capability to the mail command.","fromName":"Bryan larsen","fromEmail":"bryanlarsen@yahoo.com","sentAt":"2005-07-21T20:22:06Z","receivedAt":"2005-07-21T20:22:06Z","isPatch":true,"sender":{"key":"bryan@larsen.st","avatar":"https://avatars.githubusercontent.com/u/32073?v=4"},"body":"Add authentication capability to the mail command.  Added 'smtppassword'\nand 'smtpuser' to config file and --smtp-user, --smtp-password to command\nline.\n\nSigned-off-by: Bryan Larsen <bryan.larsen@gmail.com>\n---\n\n stgit/commands/mail.py |   34 ++++++++++++++++++++++++++++++----\n 1 files changed, 30 insertions(+), 4 deletions(-)\n\ndiff --git a/stgit/commands/mail.py b/stgit/commands/mail.py\n--- a/stgit/commands/mail.py\n+++ b/stgit/commands/mail.py\n@@ -41,7 +41,11 @@ options = [make_option('-a', '--all',\n            make_option('-s', '--sleep', type = 'int', metavar = 'SECONDS',\n                        help = 'sleep for SECONDS between e-mails sending'),\n            make_option('--refid',\n-                       help = 'Use REFID as the reference id')]\n+                       help = 'Use REFID as the reference id'),\n+           make_option('-u', '--smtp-user', metavar = 'USER',\n+                       help = 'username for SMTP authentication'),\n+           make_option('-p', '--smtp-password', metavar = 'PASSWORD',\n+                       help = 'username for SMTP authentication')]\n \n \n def __parse_addresses(string):\n@@ -65,7 +69,7 @@ def __parse_addresses(string):\n \n     return (from_addr_list[0], to_addr_list)\n \n-def __send_message(smtpserver, from_addr, to_addr_list, msg, sleep):\n+def __send_message(smtpserver, from_addr, to_addr_list, msg, sleep, smtpuser, smtppassword):\n     \"\"\"Send the message using the given SMTP server\n     \"\"\"\n     if smtpserver.find(':')==-1:\n@@ -80,6 +84,10 @@ def __send_message(smtpserver, from_addr\n         raise CmdException, str(err)\n \n     s.set_debuglevel(0)\n+    if smtpuser and smtppassword:\n+        s.ehlo()\n+        s.login(smtpuser, smtppassword)\n+\n     try:\n         s.sendmail(from_addr, to_addr_list, msg)\n         # give recipients a chance of receiving patches in the correct order\n@@ -174,6 +182,13 @@ def func(parser, options, args):\n         raise CmdException, 'smtpserver not defined'\n     smtpserver = config.get('stgit', 'smtpserver')\n \n+    smtpuser = None\n+    smtppassword = None\n+    if config.has_option('stgit', 'smtpuser'):\n+        smtpuser = config.get('stgit', 'smtpuser')\n+    if config.has_option('stgit', 'smtppassword'):\n+        smtppassword = config.get('stgit', 'smtppassword')\n+\n     applied = crt_series.get_applied()\n \n     if len(args) == 1:\n@@ -216,6 +231,17 @@ def func(parser, options, args):\n     else:\n         raise CmdException, 'Incorrect options. Unknown patches to send'\n \n+    if options.smtp_password:\n+        smtppassword = options.smtp_password\n+\n+    if options.smtp_user:\n+        smtpuser = options.smtp_user\n+\n+    if (smtppassword and not smtpuser):\n+        raise CmdException, 'SMTP password supplied, username needed'\n+    if (smtpuser and not smtppassword):\n+        raise CmdException, 'SMTP username supplied, password needed'\n+\n     total_nr = len(patches)\n     if total_nr == 0:\n         raise CmdException, 'No patches to send'\n@@ -241,7 +267,7 @@ def func(parser, options, args):\n         print 'Sending file \"%s\"...' % options.first,\n         sys.stdout.flush()\n \n-        __send_message(smtpserver, from_addr, to_addr_list, msg, sleep)\n+        __send_message(smtpserver, from_addr, to_addr_list, msg, sleep, smtpuser, smtppassword)\n \n         print 'done'\n \n@@ -264,6 +290,6 @@ def func(parser, options, args):\n         print 'Sending patch \"%s\"...' % p,\n         sys.stdout.flush()\n \n-        __send_message(smtpserver, from_addr, to_addr_list, msg, sleep)\n+        __send_message(smtpserver, from_addr, to_addr_list, msg, sleep, smtpuser, smtppassword)\n \n         print 'done'\n"}]}