bebe57
Messages postés5Date d'inscriptionmardi 22 juillet 2003StatutMembreDernière intervention 9 septembre 2009
-
22 juil. 2003 à 10:22
bebe57
Messages postés5Date d'inscriptionmardi 22 juillet 2003StatutMembreDernière intervention 9 septembre 2009
-
23 juil. 2003 à 13:56
Bonjour,
j 'ai un probleme avec l'envoie de piece jointe.Voici mon code:
Code:
With msgMAPI
.SessionID = msgSession.SessionID
.Compose
'...'
.MsgSubject = sObject
If piece_jointe <> "" Then
'Ajoute une pièce jointe
.AttachmentIndex = 0
.AttachmentPathName = piece_jointe
.AttachmentPosition = CLng(Len(.MsgNoteText) - 1)
End If
Call .send(False)
End With
Call msgSession.SignOff
msgMAPI.SessionID = 0
l 'envoie de mail marche parfaitement bien mais après je ne peux plus modifier le dossier dans lequel se trouve le fichier (piece jointe).
Je ne peux pas renommer, ni déplacer, ni supprimer le dossier.
Et voici les fonctions qui gères tout ça (il y en a 2):
'Stockage de la session MAPI
Public MapiSessionID As Long
'Le contrôle MAPISession (interface de programmation d'application de messagerie)
'ouvre et établit une session MAPI.
'Il permet également de fermer une session MAPI.
Public Function MAPI(OpenClose As String, ObjectMapiSession As MAPISession) As Long
If UCase(OpenClose) = "OPEN" Then
'Nom du compte à utiliser
ObjectMapiSession.UserName = "TOTO"
'Password du compte à utiliser
ObjectMapiSession.Password = "XXXX"
'Connexion à la messagerie
ObjectMapiSession.DownLoadMail = True
ObjectMapiSession.SignOn
Else
'Deconnexion de la messagerie
If ObjectMapiSession.SessionID <> "0" Then ObjectMapiSession.SignOff
End If
MAPI = ObjectMapiSession.SessionID
End Function
Public Sub sendMAIL(MapiSessionID As Long, ObjectMapiMessage As MAPIMessages, SENDTO As String, SUBJECT As String, TEXT As String, PJ As String)
'Permet d'envoyer un mail.
'SENDTO -> un ou plusieurs destinataires séparés par des points virgules
'PJ -> une ou plusieurs pièces jointes (chemin complet du fichier) séparés par des points virgules
Dim TableauSENDTO, TableauPJ, TableauCopiePJ
TableauSENDTO = Split(SENDTO, ";")
TableauPJ = Split(PJ, ";")
ObjectMapiMessage.SessionID = MapiSessionID
ObjectMapiMessage.Compose
For i = 0 To UBound(TableauSENDTO)
ObjectMapiMessage.RecipDisplayName = TableauSENDTO(i)
ObjectMapiMessage.MsgSubject = SUBJECT
ObjectMapiMessage.MsgNoteText = TEXT
If PJ <> "" Then
For J = 0 To UBound(TableauPJ, 1)
'On envoie des copies des pièces jointes
'car les pièces jointes présente dans le tampon
'de composition de MapiMessage sont lockées.
'Il est donc impossible de faire des opérations sur
'les pièces jointes originales et sur sur les répertoires
'les contenant sans cette manipulation.
Dim pos As String
ReDim TableauCopiePJ(UBound(TableauPJ))
pos = Len(TableauPJ(J))
While Mid(TableauPJ(J), pos, 1) <> ""
pos = pos - 1
Wend
TableauCopiePJ(J) = GetTemporyFolderPath & Mid(TableauPJ(J), pos + 1, Len(TableauPJ(J)) - pos + 1)
Set OBJ1 = CreateObject("Scripting.FileSystemObject")
OBJ1.CopyFile TableauPJ(J), TableauCopiePJ(J)
ObjectMapiMessage.AttachmentIndex = J
ObjectMapiMessage.AttachmentPosition = J
ObjectMapiMessage.AttachmentPathName = TableauCopiePJ(J)
Next
End If
ObjectMapiMessage.Send
ObjectMapiMessage.Compose
Next
'Destruction des copies des pièces jointes.
If PJ <> "" Then
For J = 0 To UBound(TableauCopiePJ)
OBJ1.DeleteFile TableauCopiePJ(J)
Next
End If
End Sub
Voilà j'espère que cela aura pu t'aider, fait moi signe si tout est Ok où même dans le cas contraire si je peux à nouveaux te donner un coup de main.