~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/util/simplemapi.py

  • Committer: Tarmac
  • Author(s): Vincent Ladeuil
  • Date: 2017-01-30 14:42:05 UTC
  • mfrom: (6620.1.1 trunk)
  • Revision ID: tarmac-20170130144205-r8fh2xpmiuxyozpv
Merge  2.7 into trunk including fix for bug #1657238 [r=vila]

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
Origin  : Based on the original script by Ian Cook
29
29
          http://www.kirbyfooty.com/simplemapi.py
30
30
Comments: Works (and tested) with:
31
 
          Outlook Express, Outlook 97 and 2000, 
 
31
          Outlook Express, Outlook 97 and 2000,
32
32
          Eudora, Incredimail and Mozilla Thunderbird (1.5.0.2)
33
33
Thanks  : Werner F. Bruhin and Michele Petrazzo on the ctypes list.
34
34
 
35
 
If you have any bug-fixes, enhancements or suggestions regarding this 
 
35
If you have any bug-fixes, enhancements or suggestions regarding this
36
36
software, please contact me at the above email address.
37
37
"""
38
38
 
 
39
from __future__ import absolute_import
 
40
 
39
41
import os
40
42
from ctypes import *
41
43
 
181
183
 
182
184
def _sendMail(session, recipient, subject, body, attach):
183
185
    nFileCount = len(attach)
184
 
    if attach: 
185
 
        MapiFileDesc_A = MapiFileDesc * len(attach) 
186
 
        fda = MapiFileDesc_A() 
187
 
        for fd, fa in zip(fda, attach): 
188
 
            fd.ulReserved = 0 
189
 
            fd.flFlags = 0 
190
 
            fd.nPosition = -1 
191
 
            fd.lpszPathName = fa 
192
 
            fd.lpszFileName = None 
193
 
            fd.lpFileType = None 
 
186
    if attach:
 
187
        MapiFileDesc_A = MapiFileDesc * len(attach)
 
188
        fda = MapiFileDesc_A()
 
189
        for fd, fa in zip(fda, attach):
 
190
            fd.ulReserved = 0
 
191
            fd.flFlags = 0
 
192
            fd.nPosition = -1
 
193
            fd.lpszPathName = fa
 
194
            fd.lpszFileName = None
 
195
            fd.lpFileType = None
194
196
        lpFiles = fda
195
197
    else:
196
198
        lpFiles = lpMapiFileDesc()
197
199
 
198
200
    RecipWork = recipient.split(';')
199
201
    RecipCnt = len(RecipWork)
200
 
    MapiRecipDesc_A = MapiRecipDesc * len(RecipWork) 
201
 
    rda = MapiRecipDesc_A() 
 
202
    MapiRecipDesc_A = MapiRecipDesc * len(RecipWork)
 
203
    rda = MapiRecipDesc_A()
202
204
    for rd, ra in zip(rda, RecipWork):
203
 
        rd.ulReserved = 0 
 
205
        rd.ulReserved = 0
204
206
        rd.ulRecipClass = MAPI_TO
205
207
        try:
206
208
            rd.lpszName, rd.lpszAddress = _resolveName(session, ra)
222
224
 
223
225
def SendMail(recipient, subject="", body="", attachfiles=""):
224
226
    """Post an e-mail message using Simple MAPI
225
 
    
 
227
 
226
228
    recipient - string: address to send to (multiple addresses separated with a semicolon)
227
229
    subject   - string: subject header
228
230
    body      - string: message text