summaryrefslogtreecommitdiff
path: root/scripting/source
diff options
context:
space:
mode:
authorJulien Nabet <serval2412@yahoo.fr>2024-07-12 22:01:34 +0200
committerJulien Nabet <serval2412@yahoo.fr>2024-07-13 00:08:12 +0200
commit08e117def0dc8541c177a2a1a0700fac9635f0fc (patch)
treea5ae5faabca028b2ddaf8f4c064d2e31242bdb3a /scripting/source
parentddcca37dbf96bf05912c4ab30b43702138896677 (diff)
Reindent mailmerge.py to use 4 spaces instead of tabs
No functional change. I used reindent.py from https://github.com/certik/python-3.2/blob/master/Tools/scripts/reindent.py Change-Id: I03c5425ef26131f09e0b9de56737b2e069722e7e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170419 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Diffstat (limited to 'scripting/source')
-rw-r--r--scripting/source/pyprov/mailmerge.py920
1 files changed, 460 insertions, 460 deletions
diff --git a/scripting/source/pyprov/mailmerge.py b/scripting/source/pyprov/mailmerge.py
index 3c781c52f2cb..46d1c887263c 100644
--- a/scripting/source/pyprov/mailmerge.py
+++ b/scripting/source/pyprov/mailmerge.py
@@ -56,478 +56,478 @@ g_providerImplName = "org.openoffice.pyuno.MailServiceProvider"
g_messageImplName = "org.openoffice.pyuno.MailMessage"
def prepareTLSContext(xComponent, xContext, isTLSRequested):
- xConfigProvider = xContext.ServiceManager.createInstance("com.sun.star.configuration.ConfigurationProvider")
- prop = uno.createUnoStruct('com.sun.star.beans.PropertyValue')
- prop.Name = "nodepath"
- prop.Value = "/org.openoffice.Office.Security/Net"
- xSettings = xConfigProvider.createInstanceWithArguments("com.sun.star.configuration.ConfigurationAccess",
- (prop,))
- isAllowedInsecure = xSettings.getByName("AllowInsecureProtocols")
- tlscontext = None
- if isTLSRequested:
- if dbg:
- print("SSL config: " + str(ssl.get_default_verify_paths()), file=sys.stderr)
- tlscontext = ssl.create_default_context()
- # SSLv2/v3 is already disabled by default.
- # This check does not work, because OpenSSL 3 defines SSL_OP_NO_SSLv2
- # as 0, so even though _ssl__SSLContext_impl() tries to set it,
- # getting the value from SSL_CTX_get_options() doesn't lead to setting
- # the python-level flag.
- #assert (tlscontext.options & ssl.Options.OP_NO_SSLv2) != 0
- assert (tlscontext.options & ssl.Options.OP_NO_SSLv3) != 0
- if not(isAllowedInsecure):
- if not(isTLSRequested):
- if dbg:
- print("mailmerge.py: insecure connection not allowed by configuration", file=sys.stderr)
- raise IllegalArgumentException("insecure connection not allowed by configuration", xComponent, 1)
- tlscontext.options |= ssl.Options.OP_NO_TLSv1 | ssl.Options.OP_NO_TLSv1_1
- return tlscontext
+ xConfigProvider = xContext.ServiceManager.createInstance("com.sun.star.configuration.ConfigurationProvider")
+ prop = uno.createUnoStruct('com.sun.star.beans.PropertyValue')
+ prop.Name = "nodepath"
+ prop.Value = "/org.openoffice.Office.Security/Net"
+ xSettings = xConfigProvider.createInstanceWithArguments("com.sun.star.configuration.ConfigurationAccess",
+ (prop,))
+ isAllowedInsecure = xSettings.getByName("AllowInsecureProtocols")
+ tlscontext = None
+ if isTLSRequested:
+ if dbg:
+ print("SSL config: " + str(ssl.get_default_verify_paths()), file=sys.stderr)
+ tlscontext = ssl.create_default_context()
+ # SSLv2/v3 is already disabled by default.
+ # This check does not work, because OpenSSL 3 defines SSL_OP_NO_SSLv2
+ # as 0, so even though _ssl__SSLContext_impl() tries to set it,
+ # getting the value from SSL_CTX_get_options() doesn't lead to setting
+ # the python-level flag.
+ #assert (tlscontext.options & ssl.Options.OP_NO_SSLv2) != 0
+ assert (tlscontext.options & ssl.Options.OP_NO_SSLv3) != 0
+ if not(isAllowedInsecure):
+ if not(isTLSRequested):
+ if dbg:
+ print("mailmerge.py: insecure connection not allowed by configuration", file=sys.stderr)
+ raise IllegalArgumentException("insecure connection not allowed by configuration", xComponent, 1)
+ tlscontext.options |= ssl.Options.OP_NO_TLSv1 | ssl.Options.OP_NO_TLSv1_1
+ return tlscontext
class PyMailSMTPService(unohelper.Base, XSmtpService):
- def __init__( self, ctx ):
- self.ctx = ctx
- self.listeners = []
- self.supportedtypes = ('Insecure', 'Ssl')
- self.server = None
- self.connectioncontext = None
- self.notify = EventObject(self)
- if dbg:
- print("PyMailSMTPService init", file=sys.stderr)
- print("python version is: " + sys.version, file=sys.stderr)
- def addConnectionListener(self, xListener):
- if dbg:
- print("PyMailSMTPService addConnectionListener", file=sys.stderr)
- self.listeners.append(xListener)
- def removeConnectionListener(self, xListener):
- if dbg:
- print("PyMailSMTPService removeConnectionListener", file=sys.stderr)
- self.listeners.remove(xListener)
- def getSupportedConnectionTypes(self):
- if dbg:
- print("PyMailSMTPService getSupportedConnectionTypes", file=sys.stderr)
- return self.supportedtypes
- def connect(self, xConnectionContext, xAuthenticator):
- self.connectioncontext = xConnectionContext
- if dbg:
- print("PyMailSMTPService connect", file=sys.stderr)
- server = xConnectionContext.getValueByName("ServerName").strip()
- if dbg:
- print("ServerName: " + server, file=sys.stderr)
- port = int(xConnectionContext.getValueByName("Port"))
- if dbg:
- print("Port: " + str(port), file=sys.stderr)
- tout = xConnectionContext.getValueByName("Timeout")
- if dbg:
- print(isinstance(tout,int), file=sys.stderr)
- if not isinstance(tout,int):
- tout = _GLOBAL_DEFAULT_TIMEOUT
- if dbg:
- print("Timeout: " + str(tout), file=sys.stderr)
- connectiontype = xConnectionContext.getValueByName("ConnectionType")
- if dbg:
- print("ConnectionType: " + connectiontype, file=sys.stderr)
- tlscontext = prepareTLSContext(self, self.ctx, connectiontype.upper() == 'SSL' or port == 465)
- if port == 465:
- self.server = smtplib.SMTP_SSL(server, port, timeout=tout, context=tlscontext)
- else:
- self.server = smtplib.SMTP(server, port,timeout=tout)
-
- if dbg:
- self.server.set_debuglevel(1)
-
- if connectiontype.upper() == 'SSL' and port != 465:
- # STRIPTLS: smtplib raises an exception if result is not 220
- self.server.starttls(context=tlscontext)
-
- user = xAuthenticator.getUserName()
- password = xAuthenticator.getPassword()
- if user != '':
- if dbg:
- print("Logging in, username of: " + user, file=sys.stderr)
- self.server.login(user, password)
-
- for listener in self.listeners:
- listener.connected(self.notify)
- def disconnect(self):
- if dbg:
- print("PyMailSMTPService disconnect", file=sys.stderr)
- if self.server:
- self.server.quit()
- self.server = None
- for listener in self.listeners:
- listener.disconnected(self.notify)
- def isConnected(self):
- if dbg:
- print("PyMailSMTPService isConnected", file=sys.stderr)
- return self.server != None
- def getCurrentConnectionContext(self):
- if dbg:
- print("PyMailSMTPService getCurrentConnectionContext", file=sys.stderr)
- return self.connectioncontext
- def sendMailMessage(self, xMailMessage):
- COMMASPACE = ', '
-
- if dbg:
- print("PyMailSMTPService sendMailMessage", file=sys.stderr)
- recipients = xMailMessage.getRecipients()
- sendermail = xMailMessage.SenderAddress
- sendername = xMailMessage.SenderName
- subject = xMailMessage.Subject
- ccrecipients = xMailMessage.getCcRecipients()
- bccrecipients = xMailMessage.getBccRecipients()
- if dbg:
- print("PyMailSMTPService subject: " + subject, file=sys.stderr)
- print("PyMailSMTPService from: " + sendername, file=sys.stderr)
- print("PyMailSMTPService from: " + sendermail, file=sys.stderr)
- print("PyMailSMTPService send to: %s" % (recipients,), file=sys.stderr)
-
- attachments = xMailMessage.getAttachments()
-
- textmsg = Message()
-
- content = xMailMessage.Body
- flavors = content.getTransferDataFlavors()
- if dbg:
- print("PyMailSMTPService flavors len: %d" % (len(flavors),), file=sys.stderr)
-
- #Use first flavor that's sane for an email body
- for flavor in flavors:
- if flavor.MimeType.find('text/html') != -1 or flavor.MimeType.find('text/plain') != -1:
- if dbg:
- print("PyMailSMTPService mimetype is: " + flavor.MimeType, file=sys.stderr)
- textbody = content.getTransferData(flavor)
-
- if len(textbody):
- mimeEncoding = re.sub("charset=.*", "charset=UTF-8", flavor.MimeType)
- if mimeEncoding.find('charset=UTF-8') == -1:
- mimeEncoding = mimeEncoding + "; charset=UTF-8"
- textmsg['Content-Type'] = mimeEncoding
- textmsg['MIME-Version'] = '1.0'
-
- try:
- #it's a string, get it as utf-8 bytes
- textbody = textbody.encode('utf-8')
- except:
- #it's a bytesequence, get raw bytes
- textbody = textbody.value
- textbody = textbody.decode('utf-8')
- c = Charset('utf-8')
- c.body_encoding = QP
- textmsg.set_payload(textbody, c)
-
- break
-
- if (len(attachments)):
- msg = MIMEMultipart()
- msg.epilogue = ''
- msg.attach(textmsg)
- else:
- msg = textmsg
-
- hdr = Header(sendername, 'utf-8')
- hdr.append('<'+sendermail+'>','us-ascii')
- msg['Subject'] = subject
- msg['From'] = hdr
- msg['To'] = COMMASPACE.join(recipients)
- if len(ccrecipients):
- msg['Cc'] = COMMASPACE.join(ccrecipients)
- if xMailMessage.ReplyToAddress != '':
- msg['Reply-To'] = xMailMessage.ReplyToAddress
-
- mailerstring = "LibreOffice via Caolan's mailmerge component"
- try:
- ctx = uno.getComponentContext()
- aConfigProvider = ctx.ServiceManager.createInstance("com.sun.star.configuration.ConfigurationProvider")
- prop = uno.createUnoStruct('com.sun.star.beans.PropertyValue')
- prop.Name = "nodepath"
- prop.Value = "/org.openoffice.Setup/Product"
- aSettings = aConfigProvider.createInstanceWithArguments("com.sun.star.configuration.ConfigurationAccess",
- (prop,))
- mailerstring = aSettings.getByName("ooName") + " " + \
- aSettings.getByName("ooSetupVersion") + " via Caolan's mailmerge component"
- except:
- pass
-
- msg['X-Mailer'] = mailerstring
- msg['Date'] = formatdate(localtime=True)
-
- for attachment in attachments:
- content = attachment.Data
- flavors = content.getTransferDataFlavors()
- flavor = flavors[0]
- ctype = flavor.MimeType
- maintype, subtype = ctype.split('/', 1)
- msgattachment = MIMEBase(maintype, subtype)
- data = content.getTransferData(flavor)
- msgattachment.set_payload(data.value)
- encode_base64(msgattachment)
- fname = attachment.ReadableName
- try:
- msgattachment.add_header('Content-Disposition', 'attachment', \
- filename=fname)
- except:
- msgattachment.add_header('Content-Disposition', 'attachment', \
- filename=('utf-8','',fname))
- if dbg:
- print(("PyMailSMTPService attachmentheader: ", str(msgattachment)), file=sys.stderr)
-
- msg.attach(msgattachment)
-
- uniquer = {}
- for key in recipients:
- uniquer[key] = True
- if len(ccrecipients):
- for key in ccrecipients:
- uniquer[key] = True
- if len(bccrecipients):
- for key in bccrecipients:
- uniquer[key] = True
- truerecipients = uniquer.keys()
-
- if dbg:
- print(("PyMailSMTPService recipients are: ", truerecipients), file=sys.stderr)
-
- self.server.sendmail(sendermail, truerecipients, msg.as_string())
+ def __init__( self, ctx ):
+ self.ctx = ctx
+ self.listeners = []
+ self.supportedtypes = ('Insecure', 'Ssl')
+ self.server = None
+ self.connectioncontext = None
+ self.notify = EventObject(self)
+ if dbg:
+ print("PyMailSMTPService init", file=sys.stderr)
+ print("python version is: " + sys.version, file=sys.stderr)
+ def addConnectionListener(self, xListener):
+ if dbg:
+ print("PyMailSMTPService addConnectionListener", file=sys.stderr)
+ self.listeners.append(xListener)
+ def removeConnectionListener(self, xListener):
+ if dbg:
+ print("PyMailSMTPService removeConnectionListener", file=sys.stderr)
+ self.listeners.remove(xListener)
+ def getSupportedConnectionTypes(self):
+ if dbg:
+ print("PyMailSMTPService getSupportedConnectionTypes", file=sys.stderr)
+ return self.supportedtypes
+ def connect(self, xConnectionContext, xAuthenticator):
+ self.connectioncontext = xConnectionContext
+ if dbg:
+ print("PyMailSMTPService connect", file=sys.stderr)
+ server = xConnectionContext.getValueByName("ServerName").strip()
+ if dbg:
+ print("ServerName: " + server, file=sys.stderr)
+ port = int(xConnectionContext.getValueByName("Port"))
+ if dbg:
+ print("Port: " + str(port), file=sys.stderr)
+ tout = xConnectionContext.getValueByName("Timeout")
+ if dbg:
+ print(isinstance(tout,int), file=sys.stderr)
+ if not isinstance(tout,int):
+ tout = _GLOBAL_DEFAULT_TIMEOUT
+ if dbg:
+ print("Timeout: " + str(tout), file=sys.stderr)
+ connectiontype = xConnectionContext.getValueByName("ConnectionType")
+ if dbg:
+ print("ConnectionType: " + connectiontype, file=sys.stderr)
+ tlscontext = prepareTLSContext(self, self.ctx, connectiontype.upper() == 'SSL' or port == 465)
+ if port == 465:
+ self.server = smtplib.SMTP_SSL(server, port, timeout=tout, context=tlscontext)
+ else:
+ self.server = smtplib.SMTP(server, port,timeout=tout)
+
+ if dbg:
+ self.server.set_debuglevel(1)
+
+ if connectiontype.upper() == 'SSL' and port != 465:
+ # STRIPTLS: smtplib raises an exception if result is not 220
+ self.server.starttls(context=tlscontext)
+
+ user = xAuthenticator.getUserName()
+ password = xAuthenticator.getPassword()
+ if user != '':
+ if dbg:
+ print("Logging in, username of: " + user, file=sys.stderr)
+ self.server.login(user, password)
+
+ for listener in self.listeners:
+ listener.connected(self.notify)
+ def disconnect(self):
+ if dbg:
+ print("PyMailSMTPService disconnect", file=sys.stderr)
+ if self.server:
+ self.server.quit()
+ self.server = None
+ for listener in self.listeners:
+ listener.disconnected(self.notify)
+ def isConnected(self):
+ if dbg:
+ print("PyMailSMTPService isConnected", file=sys.stderr)
+ return self.server != None
+ def getCurrentConnectionContext(self):
+ if dbg:
+ print("PyMailSMTPService getCurrentConnectionContext", file=sys.stderr)
+ return self.connectioncontext
+ def sendMailMessage(self, xMailMessage):
+ COMMASPACE = ', '
+
+ if dbg:
+ print("PyMailSMTPService sendMailMessage", file=sys.stderr)
+ recipients = xMailMessage.getRecipients()
+ sendermail = xMailMessage.SenderAddress
+ sendername = xMailMessage.SenderName
+ subject = xMailMessage.Subject
+ ccrecipients = xMailMessage.getCcRecipients()
+ bccrecipients = xMailMessage.getBccRecipients()
+ if dbg:
+ print("PyMailSMTPService subject: " + subject, file=sys.stderr)
+ print("PyMailSMTPService from: " + sendername, file=sys.stderr)
+ print("PyMailSMTPService from: " + sendermail, file=sys.stderr)
+ print("PyMailSMTPService send to: %s" % (recipients,), file=sys.stderr)
+
+ attachments = xMailMessage.getAttachments()
+
+ textmsg = Message()
+
+ content = xMailMessage.Body
+ flavors = content.getTransferDataFlavors()
+ if dbg:
+ print("PyMailSMTPService flavors len: %d" % (len(flavors),), file=sys.stderr)
+
+ #Use first flavor that's sane for an email body
+ for flavor in flavors:
+ if flavor.MimeType.find('text/html') != -1 or flavor.MimeType.find('text/plain') != -1:
+ if dbg:
+ print("PyMailSMTPService mimetype is: " + flavor.MimeType, file=sys.stderr)
+ textbody = content.getTransferData(flavor)
+
+ if len(textbody):
+ mimeEncoding = re.sub("charset=.*", "charset=UTF-8", flavor.MimeType)
+ if mimeEncoding.find('charset=UTF-8') == -1:
+ mimeEncoding = mimeEncoding + "; charset=UTF-8"
+ textmsg['Content-Type'] = mimeEncoding
+ textmsg['MIME-Version'] = '1.0'
+
+ try:
+ #it's a string, get it as utf-8 bytes
+ textbody = textbody.encode('utf-8')
+ except:
+ #it's a bytesequence, get raw bytes
+ textbody = textbody.value
+ textbody = textbody.decode('utf-8')
+ c = Charset('utf-8')
+ c.body_encoding = QP
+ textmsg.set_payload(textbody, c)
+
+ break
+
+ if (len(attachments)):
+ msg = MIMEMultipart()
+ msg.epilogue = ''
+ msg.attach(textmsg)
+ else:
+ msg = textmsg
+
+ hdr = Header(sendername, 'utf-8')
+ hdr.append('<'+sendermail+'>','us-ascii')
+ msg['Subject'] = subject
+ msg['From'] = hdr
+ msg['To'] = COMMASPACE.join(recipients)
+ if len(ccrecipients):
+ msg['Cc'] = COMMASPACE.join(ccrecipients)
+ if xMailMessage.ReplyToAddress != '':
+ msg['Reply-To'] = xMailMessage.ReplyToAddress
+
+ mailerstring = "LibreOffice via Caolan's mailmerge component"
+ try:
+ ctx = uno.getComponentContext()
+ aConfigProvider = ctx.ServiceManager.createInstance("com.sun.star.configuration.ConfigurationProvider")
+ prop = uno.createUnoStruct('com.sun.star.beans.PropertyValue')
+ prop.Name = "nodepath"
+ prop.Value = "/org.openoffice.Setup/Product"
+ aSettings = aConfigProvider.createInstanceWithArguments("com.sun.star.configuration.ConfigurationAccess",
+ (prop,))
+ mailerstring = aSettings.getByName("ooName") + " " + \
+ aSettings.getByName("ooSetupVersion") + " via Caolan's mailmerge component"
+ except:
+ pass
+
+ msg['X-Mailer'] = mailerstring
+ msg['Date'] = formatdate(localtime=True)
+
+ for attachment in attachments:
+ content = attachment.Data
+ flavors = content.getTransferDataFlavors()
+ flavor = flavors[0]
+ ctype = flavor.MimeType
+ maintype, subtype = ctype.split('/', 1)
+ msgattachment = MIMEBase(maintype, subtype)
+ data = content.getTransferData(flavor)
+ msgattachment.set_payload(data.value)
+ encode_base64(msgattachment)
+ fname = attachment.ReadableName
+ try:
+ msgattachment.add_header('Content-Disposition', 'attachment', \
+ filename=fname)
+ except:
+ msgattachment.add_header('Content-Disposition', 'attachment', \
+ filename=('utf-8','',fname))
+ if dbg:
+ print(("PyMailSMTPService attachmentheader: ", str(msgattachment)), file=sys.stderr)
+
+ msg.attach(msgattachment)
+
+ uniquer = {}
+ for key in recipients:
+ uniquer[key] = True
+ if len(ccrecipients):
+ for key in ccrecipients:
+ uniquer[key] = True
+ if len(bccrecipients):
+ for key in bccrecipients:
+ uniquer[key] = True
+ truerecipients = uniquer.keys()
+
+ if dbg:
+ print(("PyMailSMTPService recipients are: ", truerecipients), file=sys.stderr)
+
+ self.server.sendmail(sendermail, truerecipients, msg.as_string())
class PyMailIMAPService(unohelper.Base, XMailService):
- def __init__( self, ctx ):
- self.ctx = ctx
- self.listeners = []
- self.supportedtypes = ('Insecure', 'Ssl')
- self.server = None
- self.connectioncontext = None
- self.notify = EventObject(self)
- if dbg:
- print("PyMailIMAPService init", file=sys.stderr)
- def addConnectionListener(self, xListener):
- if dbg:
- print("PyMailIMAPService addConnectionListener", file=sys.stderr)
- self.listeners.append(xListener)
- def removeConnectionListener(self, xListener):
- if dbg:
- print("PyMailIMAPService removeConnectionListener", file=sys.stderr)
- self.listeners.remove(xListener)
- def getSupportedConnectionTypes(self):
- if dbg:
- print("PyMailIMAPService getSupportedConnectionTypes", file=sys.stderr)
- return self.supportedtypes
- def connect(self, xConnectionContext, xAuthenticator):
- if dbg:
- print("PyMailIMAPService connect", file=sys.stderr)
-
- self.connectioncontext = xConnectionContext
- server = xConnectionContext.getValueByName("ServerName")
- if dbg:
- print(server, file=sys.stderr)
- port = int(xConnectionContext.getValueByName("Port"))
- if dbg:
- print(port, file=sys.stderr)
- connectiontype = xConnectionContext.getValueByName("ConnectionType")
- if dbg:
- print(connectiontype, file=sys.stderr)
- tlscontext = prepareTLSContext(self, self.ctx, connectiontype.upper() == 'SSL')
- print("BEFORE", file=sys.stderr)
- if connectiontype.upper() == 'SSL':
- self.server = imaplib.IMAP4_SSL(server, port, ssl_context=tlscontext)
- else:
- self.server = imaplib.IMAP4(server, port)
- print("AFTER", file=sys.stderr)
-
- user = xAuthenticator.getUserName()
- password = xAuthenticator.getPassword()
- if user != '':
- if dbg:
- print("Logging in, username of: " + user, file=sys.stderr)
- self.server.login(user, password)
-
- for listener in self.listeners:
- listener.connected(self.notify)
- def disconnect(self):
- if dbg:
- print("PyMailIMAPService disconnect", file=sys.stderr)
- if self.server:
- self.server.logout()
- self.server = None
- for listener in self.listeners:
- listener.disconnected(self.notify)
- def isConnected(self):
- if dbg:
- print("PyMailIMAPService isConnected", file=sys.stderr)
- return self.server != None
- def getCurrentConnectionContext(self):
- if dbg:
- print("PyMailIMAPService getCurrentConnectionContext", file=sys.stderr)
- return self.connectioncontext
+ def __init__( self, ctx ):
+ self.ctx = ctx
+ self.listeners = []
+ self.supportedtypes = ('Insecure', 'Ssl')
+ self.server = None
+ self.connectioncontext = None
+ self.notify = EventObject(self)
+ if dbg:
+ print("PyMailIMAPService init", file=sys.stderr)
+ def addConnectionListener(self, xListener):
+ if dbg:
+ print("PyMailIMAPService addConnectionListener", file=sys.stderr)
+ self.listeners.append(xListener)
+ def removeConnectionListener(self, xListener):
+ if dbg:
+ print("PyMailIMAPService removeConnectionListener", file=sys.stderr)
+ self.listeners.remove(xListener)
+ def getSupportedConnectionTypes(self):
+ if dbg:
+ print("PyMailIMAPService getSupportedConnectionTypes", file=sys.stderr)
+ return self.supportedtypes
+ def connect(self, xConnectionContext, xAuthenticator):
+ if dbg:
+ print("PyMailIMAPService connect", file=sys.stderr)
+
+ self.connectioncontext = xConnectionContext
+ server = xConnectionContext.getValueByName("ServerName")
+ if dbg:
+ print(server, file=sys.stderr)
+ port = int(xConnectionContext.getValueByName("Port"))
+ if dbg:
+ print(port, file=sys.stderr)
+ connectiontype = xConnectionContext.getValueByName("ConnectionType")
+ if dbg:
+ print(connectiontype, file=sys.stderr)
+ tlscontext = prepareTLSContext(self, self.ctx, connectiontype.upper() == 'SSL')
+ print("BEFORE", file=sys.stderr)
+ if connectiontype.upper() == 'SSL':
+ self.server = imaplib.IMAP4_SSL(server, port, ssl_context=tlscontext)
+ else:
+ self.server = imaplib.IMAP4(server, port)
+ print("AFTER", file=sys.stderr)
+
+ user = xAuthenticator.getUserName()
+ password = xAuthenticator.getPassword()
+ if user != '':
+ if dbg:
+ print("Logging in, username of: " + user, file=sys.stderr)
+ self.server.login(user, password)
+
+ for listener in self.listeners:
+ listener.connected(self.notify)
+ def disconnect(self):
+ if dbg:
+ print("PyMailIMAPService disconnect", file=sys.stderr)
+ if self.server:
+ self.server.logout()
+ self.server = None
+ for listener in self.listeners:
+ listener.disconnected(self.notify)
+ def isConnected(self):
+ if dbg:
+ print("PyMailIMAPService isConnected", file=sys.stderr)
+ return self.server != None
+ def getCurrentConnectionContext(self):
+ if dbg:
+ print("PyMailIMAPService getCurrentConnectionContext", file=sys.stderr)
+ return self.connectioncontext
class PyMailPOP3Service(unohelper.Base, XMailService):
- def __init__( self, ctx ):
- self.ctx = ctx
- self.listeners = []
- self.supportedtypes = ('Insecure', 'Ssl')
- self.server = None
- self.connectioncontext = None
- self.notify = EventObject(self)
- if dbg:
- print("PyMailPOP3Service init", file=sys.stderr)
- def addConnectionListener(self, xListener):
- if dbg:
- print("PyMailPOP3Service addConnectionListener", file=sys.stderr)
- self.listeners.append(xListener)
- def removeConnectionListener(self, xListener):
- if dbg:
- print("PyMailPOP3Service removeConnectionListener", file=sys.stderr)
- self.listeners.remove(xListener)
- def getSupportedConnectionTypes(self):
- if dbg:
- print("PyMailPOP3Service getSupportedConnectionTypes", file=sys.stderr)
- return self.supportedtypes
- def connect(self, xConnectionContext, xAuthenticator):
- if dbg:
- print("PyMailPOP3Service connect", file=sys.stderr)
-
- self.connectioncontext = xConnectionContext
- server = xConnectionContext.getValueByName("ServerName")
- if dbg:
- print(server, file=sys.stderr)
- port = int(xConnectionContext.getValueByName("Port"))
- if dbg:
- print(port, file=sys.stderr)
- connectiontype = xConnectionContext.getValueByName("ConnectionType")
- if dbg:
- print(connectiontype, file=sys.stderr)
- tlscontext = prepareTLSContext(self, self.ctx, connectiontype.upper() == 'SSL')
- print("BEFORE", file=sys.stderr)
- if connectiontype.upper() == 'SSL':
- self.server = poplib.POP3_SSL(server, port, context=tlscontext)
- else:
- tout = xConnectionContext.getValueByName("Timeout")
- if dbg:
- print(isinstance(tout,int), file=sys.stderr)
- if not isinstance(tout,int):
- tout = _GLOBAL_DEFAULT_TIMEOUT
- if dbg:
- print("Timeout: " + str(tout), file=sys.stderr)
- self.server = poplib.POP3(server, port, timeout=tout)
- print("AFTER", file=sys.stderr)
-
- user = xAuthenticator.getUserName()
- password = xAuthenticator.getPassword()
- if dbg:
- print("Logging in, username of: " + user, file=sys.stderr)
- self.server.user(user)
- self.server.pass_(password)
-
- for listener in self.listeners:
- listener.connected(self.notify)
- def disconnect(self):
- if dbg:
- print("PyMailPOP3Service disconnect", file=sys.stderr)
- if self.server:
- self.server.quit()
- self.server = None
- for listener in self.listeners:
- listener.disconnected(self.notify)
- def isConnected(self):
- if dbg:
- print("PyMailPOP3Service isConnected", file=sys.stderr)
- return self.server != None
- def getCurrentConnectionContext(self):
- if dbg:
- print("PyMailPOP3Service getCurrentConnectionContext", file=sys.stderr)
- return self.connectioncontext
+ def __init__( self, ctx ):
+ self.ctx = ctx
+ self.listeners = []
+ self.supportedtypes = ('Insecure', 'Ssl')
+ self.server = None
+ self.connectioncontext = None
+ self.notify = EventObject(self)
+ if dbg:
+ print("PyMailPOP3Service init", file=sys.stderr)
+ def addConnectionListener(self, xListener):
+ if dbg:
+ print("PyMailPOP3Service addConnectionListener", file=sys.stderr)
+ self.listeners.append(xListener)
+ def removeConnectionListener(self, xListener):
+ if dbg:
+ print("PyMailPOP3Service removeConnectionListener", file=sys.stderr)
+ self.listeners.remove(xListener)
+ def getSupportedConnectionTypes(self):
+ if dbg:
+ print("PyMailPOP3Service getSupportedConnectionTypes", file=sys.stderr)
+ return self.supportedtypes
+ def connect(self, xConnectionContext, xAuthenticator):
+ if dbg:
+ print("PyMailPOP3Service connect", file=sys.stderr)
+
+ self.connectioncontext = xConnectionContext
+ server = xConnectionContext.getValueByName("ServerName")
+ if dbg:
+ print(server, file=sys.stderr)
+ port = int(xConnectionContext.getValueByName("Port"))
+ if dbg:
+ print(port, file=sys.stderr)
+ connectiontype = xConnectionContext.getValueByName("ConnectionType")
+ if dbg:
+ print(connectiontype, file=sys.stderr)
+ tlscontext = prepareTLSContext(self, self.ctx, connectiontype.upper() == 'SSL')
+ print("BEFORE", file=sys.stderr)
+ if connectiontype.upper() == 'SSL':
+ self.server = poplib.POP3_SSL(server, port, context=tlscontext)
+ else:
+ tout = xConnectionContext.getValueByName("Timeout")
+ if dbg:
+ print(isinstance(tout,int), file=sys.stderr)
+ if not isinstance(tout,int):
+ tout = _GLOBAL_DEFAULT_TIMEOUT
+ if dbg:
+ print("Timeout: " + str(tout), file=sys.stderr)
+ self.server = poplib.POP3(server, port, timeout=tout)
+ print("AFTER", file=sys.stderr)
+
+ user = xAuthenticator.getUserName()
+ password = xAuthenticator.getPassword()
+ if dbg:
+ print("Logging in, username of: " + user, file=sys.stderr)
+ self.server.user(user)
+ self.server.pass_(password)
+
+ for listener in self.listeners:
+ listener.connected(self.notify)
+ def disconnect(self):
+ if dbg:
+ print("PyMailPOP3Service disconnect", file=sys.stderr)
+ if self.server:
+ self.server.quit()
+ self.server = None
+ for listener in self.listeners:
+ listener.disconnected(self.notify)
+ def isConnected(self):
+ if dbg:
+ print("PyMailPOP3Service isConnected", file=sys.stderr)
+ return self.server != None
+ def getCurrentConnectionContext(self):
+ if dbg:
+ print("PyMailPOP3Service getCurrentConnectionContext", file=sys.stderr)
+ return self.connectioncontext
class PyMailServiceProvider(unohelper.Base, XMailServiceProvider, XServiceInfo):
- def __init__( self, ctx ):
- if dbg:
- print("PyMailServiceProvider init", file=sys.stderr)
- self.ctx = ctx
- def create(self, aType):
- if dbg:
- print("PyMailServiceProvider create with", aType, file=sys.stderr)
- if aType == SMTP:
- return PyMailSMTPService(self.ctx);
- elif aType == POP3:
- return PyMailPOP3Service(self.ctx);
- elif aType == IMAP:
- return PyMailIMAPService(self.ctx);
- else:
- print("PyMailServiceProvider, unknown TYPE " + aType, file=sys.stderr)
-
- def getImplementationName(self):
- return g_providerImplName
-
- def supportsService(self, ServiceName):
- return g_ImplementationHelper.supportsService(g_providerImplName, ServiceName)
-
- def getSupportedServiceNames(self):
- return g_ImplementationHelper.getSupportedServiceNames(g_providerImplName)
+ def __init__( self, ctx ):
+ if dbg:
+ print("PyMailServiceProvider init", file=sys.stderr)
+ self.ctx = ctx
+ def create(self, aType):
+ if dbg:
+ print("PyMailServiceProvider create with", aType, file=sys.stderr)
+ if aType == SMTP:
+ return PyMailSMTPService(self.ctx);
+ elif aType == POP3:
+ return PyMailPOP3Service(self.ctx);
+ elif aType == IMAP:
+ return PyMailIMAPService(self.ctx);
+ else:
+ print("PyMailServiceProvider, unknown TYPE " + aType, file=sys.stderr)
+
+ def getImplementationName(self):
+ return g_providerImplName
+
+ def supportsService(self, ServiceName):
+ return g_ImplementationHelper.supportsService(g_providerImplName, ServiceName)
+
+ def getSupportedServiceNames(self):
+ return g_ImplementationHelper.getSupportedServiceNames(g_providerImplName)
class PyMailMessage(unohelper.Base, XMailMessage):
- def __init__( self, ctx, sTo='', sFrom='', Subject='', Body=None, aMailAttachment=None ):
- if dbg:
- print("PyMailMessage init", file=sys.stderr)
- self.ctx = ctx
-
- self.recipients = [sTo]
- self.ccrecipients = []
- self.bccrecipients = []
- self.aMailAttachments = []
- if aMailAttachment != None:
- self.aMailAttachments.append(aMailAttachment)
-
- self.SenderName, self.SenderAddress = parseaddr(sFrom)
- self.ReplyToAddress = sFrom
- self.Subject = Subject
- self.Body = Body
- if dbg:
- print("post PyMailMessage init", file=sys.stderr)
- def addRecipient( self, recipient ):
- if dbg:
- print("PyMailMessage.addRecipient: " + recipient, file=sys.stderr)
- self.recipients.append(recipient)
- def addCcRecipient( self, ccrecipient ):
- if dbg:
- print("PyMailMessage.addCcRecipient: " + ccrecipient, file=sys.stderr)
- self.ccrecipients.append(ccrecipient)
- def addBccRecipient( self, bccrecipient ):
- if dbg:
- print("PyMailMessage.addBccRecipient: " + bccrecipient, file=sys.stderr)
- self.bccrecipients.append(bccrecipient)
- def getRecipients( self ):
- if dbg:
- print("PyMailMessage.getRecipients: " + str(self.recipients), file=sys.stderr)
- return tuple(self.recipients)
- def getCcRecipients( self ):
- if dbg:
- print("PyMailMessage.getCcRecipients: " + str(self.ccrecipients), file=sys.stderr)
- return tuple(self.ccrecipients)
- def getBccRecipients( self ):
- if dbg:
- print("PyMailMessage.getBccRecipients: " + str(self.bccrecipients), file=sys.stderr)
- return tuple(self.bccrecipients)
- def addAttachment( self, aMailAttachment ):
- if dbg:
- print("PyMailMessage.addAttachment", file=sys.stderr)
- self.aMailAttachments.append(aMailAttachment)
- def getAttachments( self ):
- if dbg:
- print("PyMailMessage.getAttachments", file=sys.stderr)
- return tuple(self.aMailAttachments)
-
- def getImplementationName(self):
- return g_messageImplName
-
- def supportsService(self, ServiceName):
- return g_ImplementationHelper.supportsService(g_messageImplName, ServiceName)
-
- def getSupportedServiceNames(self):
- return g_ImplementationHelper.getSupportedServiceNames(g_messageImplName)
+ def __init__( self, ctx, sTo='', sFrom='', Subject='', Body=None, aMailAttachment=None ):
+ if dbg:
+ print("PyMailMessage init", file=sys.stderr)
+ self.ctx = ctx
+
+ self.recipients = [sTo]
+ self.ccrecipients = []
+ self.bccrecipients = []
+ self.aMailAttachments = []
+ if aMailAttachment != None:
+ self.aMailAttachments.append(aMailAttachment)
+
+ self.SenderName, self.SenderAddress = parseaddr(sFrom)
+ self.ReplyToAddress = sFrom
+ self.Subject = Subject
+ self.Body = Body
+ if dbg:
+ print("post PyMailMessage init", file=sys.stderr)
+ def addRecipient( self, recipient ):
+ if dbg:
+ print("PyMailMessage.addRecipient: " + recipient, file=sys.stderr)
+ self.recipients.append(recipient)
+ def addCcRecipient( self, ccrecipient ):
+ if dbg:
+ print("PyMailMessage.addCcRecipient: " + ccrecipient, file=sys.stderr)
+ self.ccrecipients.append(ccrecipient)
+ def addBccRecipient( self, bccrecipient ):
+ if dbg:
+ print("PyMailMessage.addBccRecipient: " + bccrecipient, file=sys.stderr)
+ self.bccrecipients.append(bccrecipient)
+ def getRecipients( self ):
+ if dbg:
+ print("PyMailMessage.getRecipients: " + str(self.recipients), file=sys.stderr)
+ return tuple(self.recipients)
+ def getCcRecipients( self ):
+ if dbg:
+ print("PyMailMessage.getCcRecipients: " + str(self.ccrecipients), file=sys.stderr)
+ return tuple(self.ccrecipients)
+ def getBccRecipients( self ):
+ if dbg:
+ print("PyMailMessage.getBccRecipients: " + str(self.bccrecipients), file=sys.stderr)
+ return tuple(self.bccrecipients)
+ def addAttachment( self, aMailAttachment ):
+ if dbg:
+ print("PyMailMessage.addAttachment", file=sys.stderr)
+ self.aMailAttachments.append(aMailAttachment)
+ def getAttachments( self ):
+ if dbg:
+ print("PyMailMessage.getAttachments", file=sys.stderr)
+ return tuple(self.aMailAttachments)
+
+ def getImplementationName(self):
+ return g_messageImplName
+
+ def supportsService(self, ServiceName):
+ return g_ImplementationHelper.supportsService(g_messageImplName, ServiceName)
+
+ def getSupportedServiceNames(self):
+ return g_ImplementationHelper.getSupportedServiceNames(g_messageImplName)
g_ImplementationHelper.addImplementation( \
- PyMailServiceProvider, g_providerImplName,
- ("com.sun.star.mail.MailServiceProvider",),)
+ PyMailServiceProvider, g_providerImplName,
+ ("com.sun.star.mail.MailServiceProvider",),)
g_ImplementationHelper.addImplementation( \
- PyMailMessage, g_messageImplName,
- ("com.sun.star.mail.MailMessage",),)
+ PyMailMessage, g_messageImplName,
+ ("com.sun.star.mail.MailMessage",),)
# vim: set shiftwidth=4 softtabstop=4 expandtab: