Page 1 sur 2
Création mail avec une pièce jointe

Publié:
23 Fév 2011 à 11:41
par hippo_ma
Bonjour
Administratrice Lotus Notes, je dois développer un agent qui me permet de créer un nouveau mail (dans la session du user en cours) et de joindre a ce mail un fichier qui se trouve sous c: (sans envoyer le mail et sans spécifier les destinataires)
depuis 3 jours je cherche des exemples et fais des tests mais rien ne marche pour le moment j'arrive juste a ouvrir un nouveau mémo avec ce code
Sub Click(Source As Button)
Dim S As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim CurrentUIDoc As NotesUIDocument
Dim uidoc As NotesUIDocument
Dim Doc As NotesDocument
'récup du doc en cours
Set CurrentUIDoc = workspace.CurrentDocument
Set doc=CurrentUIDoc.document
MS=S.Getenvironmentstring("MailServer",True)
MF=S.Getenvironmentstring("MailFile",True)
' création d'un doc signet
Set uidoc = workspace.ComposeDocument(MS,MF, "memo")
uidoc.FieldAppendText(subject,"essai")
'Mise en place du lien doc dans le body du signet
Set Doc=uidoc.document
Set rtitem = New NotesRichTextItem( doc, "Body" )
Set object1 = rtitem.EmbedObject _
( EMBED_ATTACHMENT, "", "c:\doclink.ndl")
End Sub
Si quelqu'un pouvez m'aider je vous remercie

Publié:
23 Fév 2011 à 13:03
par Michael DELIQUE
salut
fait tout ton traitement en back-end et a la place d'un "workspace.ComposeDocument" au milieu place un
workspace.editdocument à la fin

Publié:
23 Fév 2011 à 13:04
par Michael DELIQUE
et merci d'éviter les post en doublon

Publié:
23 Fév 2011 à 13:49
par hippo_ma
Bonjour
desolée pour le post en double
workspace.edit document me met en modification le doc sur lequel je me trouve moi je voudrais créer un nouveau mémo avec une pièce jointe.
Thanks

Publié:
23 Fév 2011 à 14:13
par Michael DELIQUE
et bien dans ce cas créé un nouveau document
set doc = db.createdocument !
sinon tu sera obligé d'enregistrer, fermer puis réouvrir ton document en frontal
Re: Création mail avec une pièce jointe

Publié:
23 Fév 2011 à 23:34
par roubech
hippo_ma a écrit:sans envoyer le mail et sans spécifier les destinataires
est-ce que tu veux dire qur ton code ne doit pas renseigner les destinataires ni envoyer le mail et qu'il faut une intéraction de l'utilisateur pour compléter les destinataires et après faire l'envoi ? ou au contraire, il ne faut pas que l'utilisateur renseigne quoique ce soit. L'utilisateur sélection un doc (un mail) et clique sur ton bouton pour déclencher l'envoi du mail sans rien renseigner.
Si pas d'interaction avec l'utilisateur = comme l'a dit Mickael, fait tout en back end (NotesSession / NotesDocument)
si tu prépares juste le mail => front end (NotesUIWorkspace / NotesUIDocument )

Publié:
24 Fév 2011 à 07:43
par Michael DELIQUE
sauf que son code fait du front-end puis du back-end avec un richtext et ça va pas passer.
faut faire l'inverse back-end avec richtext puis front-end

Publié:
24 Fév 2011 à 09:09
par hippo_ma
Bonjour
oui les utilisateurs doivent saisir les destinataires. et envoyer le mail
Dans mon code j'ai un message d'erreur quand j'insère une pj
"object variable not set"
voici mon code pour le moment il m'ouvre un nouveau mail met un sujet et ecrit dans le body il me manque plus que la pièce jointe a inserer qui se trouve en local sur le c:
Sub Click(Source As Button)
Dim S As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim CurrentUIDoc As NotesUIDocument
Dim uidoc As NotesUIDocument
Dim Doc As NotesDocument
Dim object As NotesEmbeddedObject
Dim rtItem As NotesRichTextItem
'récup du doc en cours
Set CurrentUIDoc = workspace.CurrentDocument
Set doc=CurrentUIDoc.document
MS=S.Getenvironmentstring("MailServer",True)
MF=S.Getenvironmentstring("MailFile",True)
' création d'un doc signet
Set uidoc = workspace.composedocument(MS,MF,"memo")
Call uidoc.FieldSetText("subject",Doc.GetItemValue("Subject")(0))
Call uidoc.FieldSetText("body","Vous trouverez en pièce jointe : "+doc.GetItemValue("Subject")(0))
Set object = rtitem.EmbedObject _
( EMBED_ATTACHMENT, "", "c:\doclink.ndl")
End Sub

Publié:
24 Fév 2011 à 09:10
par hippo_ma
excusez moi mais je ne sais pas ce que signifie front-end et back-end ?

Publié:
24 Fév 2011 à 09:24
par Michael DELIQUE
re
front-end tous les objet en NotesUI (correspond a l'écran) back-end tous les autres.
as-tu lu ça =>
http://forum.dominoarea.org/initiation- ... 12997.html

Publié:
24 Fév 2011 à 10:18
par hippo_ma
je l'ai téléchargé hier mais je ne l'ai pas tout lu encore

Publié:
24 Fév 2011 à 11:45
par hippo_ma
une idée sur mon erreur object not set .???

Publié:
24 Fév 2011 à 12:47
par Michael DELIQUE
re, ma version
- Code : Tout sélectionner
Dim Session As New NotesSession
Dim dbMail As NotesDatabase
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim Doc As NotesDocument
dim rtitem as NotesRichTextItem
MS=S.Getenvironmentstring("MailServer",True)
MF=S.Getenvironmentstring("MailFile",True)
Set dbMail = Session.GetDatabase(MS,MF,False)
Set Doc = dbMail.CreateDocument
Call doc.ReplaceItemValue("Form","memo")
Set rtitem = New NotesRichTextItem( doc, "Body" )
Set object1 = rtitem.EmbedObject _
( EMBED_ATTACHMENT, "", "c:\doclink.ndl")
Set uidoc = workspace.EditDocument(True,doc,False)
Call uidoc.FieldAppendText(subject,"essai")

Publié:
24 Fév 2011 à 13:48
par hippo_ma
Merci pour le code ca marche.
Super forum d'entraide !!

Publié:
25 Fév 2011 à 07:33
par hippo_ma
une dernière petit question comment fait on dans le body pour mettre du texte en gras et faire un saut de ligne ?
merci