Sous Lotus, nous avons plusieurs documents sous Lotus que nous modifions assez souvent.
Pour gagner du temps, nous souhaitons automatiser cette manipulation qui nous prend pas mal de temps.
Les documents contiennent du texte, des images, des documents...
Aujourd'hui, je suis en mesure d'envoyer par mail ce type de document sans problème.
Mais je n'arrive pas à modifier les documents existants pour en faire de même.
Voici, le code :
Dans un premier temps, je prends le document en question, et je le vide (texte et document), cela fonctionne bien.
- Code : Tout sélectionner
Set noDatabase = noSession.GETDATABASE(Serveur, MailBox)
Set noDocument = noDatabase.GetDocumentByID(DocById) 'Test Automatisation
'---- Supprimer Fichiers Joints ---- http://www.dominoarea.org/forum/viewtopic.php?t=11940
If noDocument.HasEmbedded = True Then
For Each j In noDocument.GetFirstItem("Body").embeddedobjects
noDocument.GetAttachment(j.Name).Remove
Next
End If
'---- Supprimer Contenu Texte ----
noDocument.body = ""
Dans un second temps, je crée mon document (que j'utilise pour l'envoie de mails), et là aussi, cela fonctionne. Un extrait du code :
- Code : Tout sélectionner
Set Header = body.CreateHeader("MIME-Version")
Call Header.SetHeaderVal("1.0")
Set Header = body.CreateHeader("Content-Type")
Call Header.SetHeaderValAndParams("multipart/related;boundary=""= NextPart_=""")
'Set the HTML part.
Set mimeBody = body.CreateChildEntity()
Set Stream = noSession.CreateStream()
Call Stream.WriteText(Html)
Call mimeBody.SetContentFromText(Stream, "text/html;charset=UTF-8", ENC_BASE64)
Call Stream.Close
'Images src='cid:Transactionnel.png'
idx = InStr(Html, "'cid:")
While idx
pos = InStr(idx + 5, Html, "'")
Image.Add Mid(Html, idx + 5, pos - idx - 5)
idx = InStr(pos, Html, "'cid:")
Wend
For Each Nom In Image
Set Stream = noSession.CreateStream()
Set mimeBody = body.CreateChildEntity()
Set Header = mimeBody.CreateHeader("Content-ID")
Call Header.SetHeaderVal(Nom)
Call Stream.Open(Racine & Nom)
Call mimeBody.SetContentFromBytes(Stream, MIME.Item(Right(Nom, 3)), ENC_IDENTITY_BINARY)
Call Stream.Close
Next
'Fichier Joint
For Each Nom In FichierJoint
Call noDocument.CREATERICHTEXTITEM(Nom).EMBEDOBJECT(1454, "", Racine & Nom, Nom)
Next
'Envoie Mail
Call noDocument.Send(False)
Là, ou je sèche littéralement, c'est comment faire le lien entre les 2 parties de code.
Je n'arrive pas à manipuler le Body du document existant.
Même avec la commande suivante 'Set body = noDocument.getMIMEEntity()
Si vous avez une expérience à ce sujet, je suis preneur