[python-win32] How to send emails using Python via the default email client (eg Outlook Express)

Luc Saffre luc.saffre at gmx.net
Tue Dec 28 11:40:09 CET 2004


Ian,

thanks for posting simplemapi.py. I can report that it works. I use 
Thunderbird as mail client. Thunderbird notifies me as follows about the 
MAPI request:

   Another application is attempting to send mail using your user
   profile. Are you sure you wxant to send mail?

   [x] Warn me whenever other applications try to send mail from me.

TB does not let me edit the file before sending it (a feature that could 
be nice). Anyway I didn't yet find documentation about how to configure 
TB's behaviour with MAPI...

Until now I solved the same problem with a different approach::

   # source:
   # http://lsaffre.dyndns.org/websvn/filedetails.php?repname=lino\
   #   &path=%2Ftrunk%2Fsrc%2Flino%2Ftimtools%2Fmail.py&rev=0&sc=0

   import urllib
   import webbrowser

   def mailto_url(to=None,subject=None,body=None,cc=None):
     """
     encodes the content as a mailto link as described on
     http://www.faqs.org/rfcs/rfc2368.html
     """
     url = "mailto:" + urllib.quote(to.strip(),"@,")
     sep = "?"
     if cc:
         url+= sep + "cc=" + urllib.quote(cc,"@,")
         sep = "&"
     if subject:
         url+= sep + "subject=" + urllib.quote(subject,"")
         sep = "&"
     if body:
         # Also note that line breaks in the body of a message MUST be
         # encoded with "%0D%0A". (RFC 2368)
         body="\r\n".join(body.splitlines())
         url+= sep + "body=" + urllib.quote(body,"")
         sep = "&"
     return url

   def openmail(msg):
     url = mailto_url(msg.get('to'),msg.get("subject"),msg.get_payload())
     webbrowser.open(url,new=1)


I added your module to my own project "Lino" which I publish under the 
GPL. Here is a link to the SVN repository:

http://lsaffre.dyndns.org/websvn/filedetails.php?repname=lino&path=%2Ftrunk%2Fsrc%2Fforum%2Fsimplemapi.py&rev=0&sc=0

Please let me know if you have a copyright problem with this.

Luc Saffre




On 28.12.2004 03:12, Ian Cook wrote:
> 
> Hi Everyone,
> Recently I found out how to send emails using Python via the default 
> email client (eg Outlook Express)
> A suggestion was made to post a message here.
>  
> The script will allow multiple recipients and multiple attachements.
>  
>  
> *Syntax*
> simplemapi.SendMail(recipient,subject,body,attachment)
>  
> where:
>     recipient - string: address to send to (multiple address sperated 
> with a semicolin)
>     subject - string: subject header
>     body - string: message text
>     attach - string: files to attach (multiple attachments sperated with 
> a semicolin)
>  
> *Example usage*
> import simplemapi
> simplemapi.SendMail("to1address at server.com;to2address at server.com","My 
> Subject","My message body","c:\attachment1.txt;c:\attachment2")
>    
>  
> I hope it is of some help to others.
>  
> You can download the script from http://www.kirbyfooty.com/simplemapi.py 
> <http://www.kirbyfooty.com/simplemapi.py>
>  
> Kind regards
> Ian Cook
> www.kirbyfooty.com <http://www.kirbyfooty.com>
>  
>  
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Python-win32 mailing list
> Python-win32 at python.org
> http://mail.python.org/mailman/listinfo/python-win32


More information about the Python-win32 mailing list