git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[StGit PATCH] mail: Ask for the SMTP credentials before sending the messages

From
CMCatalin Marinas <catalin.marinas@arm.com>
Date
Feb 12, 2010, 16:11 UTC
Message-ID
<20100212161150.12036.62592.stgit@pc1117.cambridge.arm.com>

The original implementation was asking for the SMTP password on every patch sent. This patch only asks the password once before sending or even editing the cover message and patches.

Signed-off-by: Catalin Marinas <catalin.marinas@gmail.com>
Cc: Pavel Roskin <proski@gnu.org>
Cc: Alex Chiang <achiang@hp.com>
---
 stgit/commands/mail.py |   22 ++++++++++++++++++++--
 1 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/stgit/commands/mail.py b/stgit/commands/mail.py
index 34262d3..b0a8f13 100644
--- a/stgit/commands/mail.py
+++ b/stgit/commands/mail.py
@@ -192,9 +192,18 @@ def __send_message_sendmail(sendmail, msg):
     cmd = sendmail.split()
     Run(*cmd).raw_input(msg).discard_output()
 
-def __send_message_smtp(smtpserver, from_addr, to_addr_list, msg, options):
-    """Send the message using the given SMTP server
+__smtp_credentials = None
+
+def __set_smtp_credentials(options):
+    """Set the (smtpuser, smtppassword, smtpusetls) credentials if the method
+    of sending is SMTP.
     """
+    global __smtp_credentials
+
+    smtpserver = options.smtp_server or config.get('stgit.smtpserver')
+    if options.git or smtpserver.startswith('/'):
+        return
+
     smtppassword = options.smtp_password or config.get('stgit.smtppassword')
     smtpuser = options.smtp_user or config.get('stgit.smtpuser')
     smtpusetls = options.smtp_tls or config.get('stgit.smtptls') == 'yes'
@@ -206,6 +215,13 @@ def __send_message_smtp(smtpserver, from_addr, to_addr_list, msg, options):
     if (smtpuser and not smtppassword):
         smtppassword = getpass.getpass("Please enter SMTP password: ")
 
+    __smtp_credentials = (smtpuser, smtppassword, smtpusetls)
+
+def __send_message_smtp(smtpserver, from_addr, to_addr_list, msg, options):
+    """Send the message using the given SMTP server
+    """
+    smtpuser, smtppassword, smtpusetls = __smtp_credentials
+
     try:
         s = smtplib.SMTP(smtpserver)
     except Exception, err:
@@ -652,6 +668,8 @@ def func(parser, options, args):
     else:
         ref_id = None
 
+    # get username/password if sending by SMTP
+    __set_smtp_credentials(options)
 
     # send the cover message (if any)
     if options.cover or options.edit_cover:
Next: Pavel Roskin
Message 1 of 4 in “mail: Ask for the SMTP credentials before sending the messages”
  1. mail: Ask for the SMTP credentials before sending the messagesCatalin Marinas, Feb 12, 2010
  2. Pavel RoskinFeb 12, 2010
  3. Pavel RoskinFeb 12, 2010
  4. Catalin MarinasMar 1, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.