Page 1 sur 1
Envoi email à partir d'une vue

Publié:
05 Juil 2010 à 14:54
par gadcho
http://forum.dominoarea.org/envoi-email-t14041.html
Bonjour,
J'ai une base avec des documents qui ont un champ e-mail.
Je veux un bouton qui permet d'ouvrir un mémo et de récupérer l'email.
J'ai donc copié le bouton qui est dans les contacts (CA perso), les bibliothèques MailLibrary.. et StringResources.., l'agent CreateMemo
Mais le mémo s'ouvre avec le destinataire vide.
Que dois je modifier pour l'adapter à ma base ?
Merci de votre réponse.

Publié:
05 Juil 2010 à 20:57
par roubech
tu as analysé le code copié pour comprendre ce u'il fait ?
Comment s'appelle le champ dans ton masque qui contient l'adresse email ? Tu as adapté la fonction GetMailAddress avec ce nom de champ ?

Publié:
06 Juil 2010 à 07:58
par gadcho
En fait, j'ai créé un champ MailAddress dans mon masque comme dans le masque Contact.

Publié:
06 Juil 2010 à 10:24
par gadcho
Voila le getmailaddress :
Function GetMailAddress() As String
Set pNote = db.getprofiledocument("tempvars")
CurrentMailingAddress = pNote.Pmailaddress
If note.Type(0) = "MFiche" Then
If CurrentMailingAddress(0) = "MA" Then
GetMailAddress = note.MailAddress(0)
If getMailAddress = "" And note.FullName(0) <> "" Then
GetMailAddress = note.FullName(0)
End If
Elseif CurrentMailingAddress(0) <> "" Then
GetMailAddress = CurrentMailingAddress(0)
Else
GetMailAddress= note.FullName(0)
End If
Elseif note.Type(0) = "Group" Then
GetMailAddress = note.ListName(0)
Else
GetMailAddress=""
End If
pNote.Pmailaddress = ""
Call pNote.save(False,False)
End Function

Publié:
06 Juil 2010 à 14:08
par gadcho
@SetProfileField("tempvars"; "Pmailaddress"; "MA")
Pouvez vous m'expliquer ce que fait la fonction ci-dessus ?
Merci

Publié:
06 Juil 2010 à 14:42
par LSong
ca mette a jour un champs dans un document de profil
va voir l'aide

Publié:
06 Juil 2010 à 14:46
par gadcho
j'ai été voir mais je ne trouve pas le champ Pmailaddress

Publié:
06 Juil 2010 à 15:03
par roubech
tous les champs de toutes les bases Notes possibles ne sont pas référencés dans l'aide.
Ce qui compte, c'est la commande @SetProfileField
là, en l'occurence, tu vois qu'il passe par un document de profile "tempvars" pour stocker dans un champ "Pmailaddress" la valeur "MA"
utile pour passer d'un contexte à l'autre
Mais, je pense que ce qui doit être en formule, c'est plutôt un @GetProfileField pour calculer la valeur par défaut du destinataire dans le masque Memo de la boite mail standard
et dans ton bouton, tu fais appelle à la fonction GetMailAddress qui alimente ce doc profil en récupérant l'adresse du doc sélectionné
Par contre, le code que tu as repris commence par un test qui ne doit pas te concerner. Ton masque ne s'appelle pas "MFiche" ?
[syntax="LotusScript"]Function GetMailAddress() As String
If note.form(0) = "Contact" Then
GetMailAddress = note.MailAddress(0)
Else
GetMailAddress=""
End If
End Function[/syntax]
PS : entoure ton code des balises correspondantes, c'est beaucoup plus facile à lire

Publié:
06 Juil 2010 à 15:12
par gadcho
Mon masque s'appelle bien MFiche .
A quoi sert la valeur "MA" ?

Publié:
06 Juil 2010 à 15:34
par roubech
Regardes si tu comprend le principe comme ça
Je ne l'ai pas compilé ni testé
[syntax="LotusScript"]sub CreateMemoToSelectedContact()
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase, dbMail As NotesDatabase
Dim dc As NotesDocumentCollection
Dim docContact As NotesDocument, docMail As NotesDocument
Dim item As NotesItem
' Vérification des docs sélectionnés
Set db = ws.CurrentDatabase.Database
Set dc = db.UnprocessedDocuments
If dc Is Nothing Then
MessageBox "No documents were selected.",0,"Error"
Exit sub
End If
If dc.Count = 0 Then
MessageBox "No documents were selected.",0,"Error"
Exit Sub
End If
' Création du mail dans laBAL de l'utilisateur courant (cf doc site)
Set dbMail = New NotesDatabase( "", "" )
Call dbMail.OpenMail()
Set docMail = New NotesDocument( dbMail )
docMail.Form = "Memo"
Set item = docMail.ReplaceItemValue( "SendTo", "" )
' Alimentation des destinataires
Set docContact = dc.GetFirstDocument()
While Not docContact Is Nothing
Call item.AppendToTextList( docContact.MailAddress(0) )
Set docContact = dc.GetNextDocument(docContact)
Wend
' Affichage du mail à l'écran
Call ws.EditDocument( True, docMail )
End sub[/syntax]

Publié:
06 Juil 2010 à 15:35
par roubech
gadcho a écrit:A quoi sert la valeur "MA" ?
aucune idée, faut voir le contexte et où tu as pris le code