Page 1 sur 2

Enregistrer une pice jointe de mail

MessagePublié: 25 Mars 2011 à 11:28
par clementbp
Bonjour

Je voudrais créer un agent qui va enregistrer la piece jointe du mail que j'ai selectionné dans une vue.

Avez-vous une idée de la manière de coder cet agent

Merci

MessagePublié: 25 Mars 2011 à 11:30
par Michael DELIQUE
salut

tu veux enregister sur un ton disque la piece jointe dans ton mail ?

MessagePublié: 25 Mars 2011 à 12:00
par clementbp
Oui dans le but de l'imprimer par la suite parce que j'ai vu un post qui parlait d'imprimer une pièce jointe mais apparement il faut rentrer dans les parametre l'adresse du fichier

MessagePublié: 25 Mars 2011 à 12:41
par Michael DELIQUE

MessagePublié: 25 Mars 2011 à 15:15
par clementbp
J'ai regardé ce tips mais je n'arrive pas a comprendre comment cet agent peu fonctionné

Auriez vous la possibilité de me guider un peu pour que je puisse faire un agent me permettant de récupérer la pièce jointe de mon mail dans le but de l'imprimer.

MessagePublié: 25 Mars 2011 à 15:23
par Michael DELIQUE
ce n'est pas un agent mais une fonction de détachement de piece jointe

il faut l’implémenter !

MessagePublié: 25 Mars 2011 à 15:36
par clementbp
Mais est il possible de le faire en agent LS

Peut être que je n'ai pas assez expliqué ma demande

Je voudrais que depuis le dossier "Inbox" d'une base de type courrier un utilisateur ait la possibilité de selection une ligne (un mail), et de cliquer sur un bonton de la barre d'action et que la piece jointe du mail selectionné s'enregistre à un emplacement choisi.

Cette base de type courrier ne contiendra que des fax, qui sont tous uniquement composé d'une seule pièce jointe.

Le but final étant d'imprimer la piece jointe.

Et la je n'ai aucune idée de comment m'y prendre

MessagePublié: 25 Mars 2011 à 15:51
par Michael DELIQUE
codé vite fait, s'il manque des fonction tu les trouvera dans les tips

Code : Tout sélectionner
Dim Session As NotesSession
   Dim UIWork As NotesUIWorkspace
   Dim db As NotesDatabase
   Dim Collection As NotesDocumentCollection
   Dim Doc As NotesDocument
   Dim vrValue As Variant
   
   On Error GoTo CatchError
   
   Set Session = New NotesSession
   Set db = session.Currentdatabase
   Set Collection = db.Unprocesseddocuments
   If Collection Is Nothing Then
      Exit Sub
   ElseIf collection.Count = 0 Then
      Exit sub
   End If
   
   Set UIWork = New NotesUIWorkspace
   
   vrValue = UIwork.SaveFileDialog(True," Select directory",,"C:\")
   
   Set Doc = Collection.Getfirstdocument()
   While Not doc Is Nothing
      Call FileDetachAll(Doc, "",vrValue(0),"")
      Set Doc=  Collection.Getnextdocument(Doc)
   Wend
Set Collection = nothing

Exit Sub
CatchError:
MsgBox "("+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
Exit Sub


Code : Tout sélectionner
Function FileDetachAll(wDoc As notesdocument, Byval wChamp As String,wDirectory As String, Byval wnbPath As Boolean, Byval wnbDelete As Boolean, wnbSave As Boolean)As Variant

   Dim rtitem As NotesRichTextItem
   Dim lstValue List As String
   Dim i As Integer
   Dim vrEO As Variant
   
   On Error Goto CatchError
   
   lstValue(0) = ""
   
   If wDoc Is Nothing Then
      Error 9999,"wDoc is Nothing"
   Else
      If wDoc.HasEmbedded = False Then
         FileDetachAll = lstValue
         Erase lstValue
         Exit Function
      End If
   End If
   
   If Trim(wChamp) = "" Then
      Error 9999,"wChamp empty"
      Exit Function
   Else
      Set rtitem = wDoc.GetFirstItem(wChamp)
      If rtitem Is Nothing Then
         Error 9999,"rtitem => ''"+wChamp+"'' is nothing"
         Exit Function
      Else
         If (rtitem.Type <> RICHTEXT) Then
            Error 9999,"'"+wChamp+"'' is not NotesRichTextItem"
            Exit Function
         End If
      End If
   End If
   
   If Trim(wDirectory) = "" Then
      Error 9999,"wDirectory empty"
      Exit Function
   Else
      If Right(Trim(wDirectory),1)<>"\" Then
         wDirectory = Trim(wDirectory)+"\"
      Else
         wDirectory = Trim(wDirectory)
      End If
   End If
   
   i=0
   
   If Trim(wChamp) =  "" Then
      vrEO = wDoc.EmbeddedObjects
   Else
      vrEO = rtitem.EmbeddedObjects
   End If
   
   If testVariant(vrEO) = True Then
      Forall Attachement In vrEO
         If Attachement.Type = EMBED_ATTACHMENT Then
            Call Attachement.ExtractFile(wDirectory+Trim(Attachement.Name))
            If wnbPath = True Then
               lstValue(i) = wDirectory+Attachement.Name
            Else
               lstValue(i) = Attachement.Name
            End If
            i=i+1
            If wnbDelete = True Then
               Call Attachement.Remove
            End If
         End If
      End Forall
      vrEO = Null
   End If
   
   Set rtitem = Nothing
   
   If wnbSave = True Then
      Call wDoc.Save(True,False)
   End If
   
   FileDetachAll = lstValue
   Erase lstValue
   
   Exit Function
CatchError:
   Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
   Set rtitem = Nothing
   lstValue(0) = "ERROR"
   FileDetachAll = lstValue
   Erase lstValue
   Exit Function
End Function

MessagePublié: 25 Mars 2011 à 16:07
par clementbp
Désolé mais je ne vois pas comment utiliser votre code

Dans quoi faut il mettre les bouts de code (écris en vert, ou/et écris en noir) ?


Initialize - Terminate ....


Merci de votre aide

MessagePublié: 25 Mars 2011 à 16:20
par Michael DELIQUE
re,

dans l'initialize. mais là tu as besoin d'un developpeur !

MessagePublié: 25 Mars 2011 à 16:47
par clementbp
Je ne sais pas comment faire alors

Si je veux simplement ouvrir la piece jointe du mail comment je peut faire.

A supposé que mon document soit ouvert en édition, quelle partie du code correspond à
* selectionner la piece jointe et l'enregistrer

Merci de votre aide

MessagePublié: 25 Mars 2011 à 16:48
par Michael DELIQUE
c'est pas un code pour les document ouvert. mais pour exporter toutes les pices jointe des document sélectionné

MessagePublié: 25 Mars 2011 à 16:52
par clementbp
D'accord Ok

Quand je récupere ton code et que je le copie simplement, j'ai un problème au niveau de la liqne :

If testVariant(vrEO) = True Then

Il me mets "Illegal parenthesized reference: TESTVARIANT"

MessagePublié: 25 Mars 2011 à 20:53
par Michael DELIQUE
comme je te l'ai dis s'il manque des fonction reagrde dans les tips => http://forum.dominoarea.org/tester-une- ... 17732.html

MessagePublié: 28 Mars 2011 à 16:54
par clementbp
Bonjour

J'ai fais plusieurs essais mais sans succès
Auriez vous un tips qui parle de la manière de créé un agent qui utilise une fonction.
D'après ce que j'ai compris, c'est le cas dans votre agent, ou vous avez défini une fonction qui s'appelle FileDetachAll

Merci de votre aide