Page 1 sur 2

envoi email

MessagePublié: 30 Mars 2006 à 13:41
par kikiebou
Salut,

Je voudrais créer une action qui permet, à partir d'une vue qui rescence mes contacts ( nom, prénom, mail...) d'envoyer un mail à la personne sélectionnée.
Il faut que cette action ouvre la fenêtre de nouveau mémo, et remplisse le champ "à" avec l'adresse mail de la personne.
Ces contacts ne sont pas entrés ni dans l'annuaire domino, ni dans le carnet d'adresse perso. Ils sont seulement dans la base courante.

merci d'avance pour vos réponses :?

MessagePublié: 30 Mars 2006 à 14:43
par Stephane Maillard
Salut,

il faut que tu te fasse un masque de message et que tu travail sur le PostOpen pour récupérer l'adresse de la personne.

Est ce que tu connais un peux le LotusScript ? Sinon regarde ici pour avoir les bases du développement => http://www.dominoarea.org/phpBB2/index.php?f=68

MessagePublié: 30 Mars 2006 à 14:45
par kikiebou
ok merci

je connais pas lotus script, mais je vais regardais le lien que tu me conseilles

MessagePublié: 30 Mars 2006 à 14:47
par Stephane Maillard
Re,

Si j'ai cinq minutes je te fais une base exemple.

MessagePublié: 30 Mars 2006 à 14:58
par Stephane Maillard
Re,

[HS]C'est toi Céline sur Dominux ?[/HS]

Je ne pense pas que tu puisse passer directement sur le doc de la messagerie de l'user en cours. <==> [EDIT]Qu'est ce que je suis nul desfois pffffffff, honte à moi ! :oops: [/EDIT]

MessagePublié: 30 Mars 2006 à 15:06
par Stephane Maillard
Re,

Bon je viens de trouver dans le names.nsf local derrière le bouton Write Memo de la vue Contact, voici les différents codes.

Librairie MailLibrary
Code : Tout sélectionner
Option Public
%INCLUDE "lsconst.lss"

Const ERROR_TITLE = "Error"
Const ERROR_MSG_2 = "Please verify that it appears correctly in your current location."
Const ERROR_MSG_1 = "Your mail file could not be opened."

Dim ws As NotesUIWorkspace

Dim session As NotesSession
Dim db As NotesDatabase
Dim maildb As NotesDatabase
Dim note As NotesDocument
Dim mailnote As NotesDocument
Dim collection As NotesDocumentCollection
Dim profile As NotesDocument

Dim SendToNames() As String
Dim counter As Integer
Dim flag As Variant

Sub InstantiateVariables
   Set ws = New NotesUIWorkspace
   Set session = New NotesSession
   Set db = session.CurrentDatabase
   Set maildb = New NotesDatabase("","")
   maildb.OpenMail
   
   ' check to make sure that we got the mail file opened
   flag = maildb.Isopen
   If flag = True Then
      Set profile = maildb.GetProfileDocument("CalendarProfile")
      counter = 0
      Set collection = db.UnprocessedDocuments
   Else
      Msgbox ERROR_MSG_1 & Chr(13) & ERROR_MSG_2, MB_ICONSTOP,ERROR_TITLE
   End If
End Sub

Function GetMailAddress() As String
   Set pNote = db.getprofiledocument("tempvars")
   CurrentMailingAddress = pNote.Pmailaddress
   
   If note.Type(0) = "Person" Then   
      If CurrentMailingAddress(0) = "MA" Then
         GetMailAddress = note.MailAddress(0)
      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


Code de l'agent CreateMailMemo
Code : Tout sélectionner
Option Public
Use "MailLibrary"

Sub Initialize
'declare local variables
   Dim x As Integer
   
'instantiate objects     
   InstantiateVariables
   
   If Not collection Is Nothing Then
      If (collection.Count = 0) Then
         Messagebox "No documents were selected.",0,"Error"
         Exit Sub
      End If
   Else
      Exit Sub
   End If
   
   Redim SendToNames(collection.Count-1)
   
'for each document in the collection, get the mail address
'we use the GetNth method since the resulting collection is an IDTable
   For x = 1 To collection.Count
      Set note = collection.GetNthDocument(x)
      SendToNames(counter) = GetMailAddress
      counter = counter + 1
   Next
   
   Set mailnote = New NotesDocument(maildb)
   mailnote.SendTo = SendToNames
   mailnote.Form = "Memo"
   mailnote.Logo = profile.DefaultLogo(0)
   mailnote.Principal = profile.Owner(0)
   
   Call ws.EditDocument(True,mailnote)
End Sub


Code de ton bouton
Code : Tout sélectionner
@If(@TextToNumber(@Version) < 146; @Return(@Prompt([Ok];"Error";"You must use Notes 4.6 or above to use this action."));@Command([ToolsRunMacro];"(CreateMailMemo)"))


A adapter selon le nom de tes champs.

MessagePublié: 30 Mars 2006 à 15:28
par kikiebou
oui, c'était aussi moi sur Dominux! :wink:

merci, j'essai ça

MessagePublié: 30 Mars 2006 à 15:46
par kikiebou
en fait, je vois pas bien où je dois modifier des noms de champs... je comprends encore rien du tout à lotus script... :cry:
je vais me plonger dans "l'initiation au lotus script" ! :shock:
mais merci pour ton aide.

MessagePublié: 30 Mars 2006 à 15:48
par Stephane Maillard
Re,

Function GetMailAddress() As String
Set pNote = db.getprofiledocument("tempvars")
CurrentMailingAddress = pNote.Pmailaddress

If note.Type(0) = "Person" Then ' <== La il faut changer
If CurrentMailingAddress(0) = "MA" Then ' <== La il faut changer
GetMailAddress = note.MailAddress(0) ' <== La il faut changer
Elseif CurrentMailingAddress(0) <> "" Then ' <== La il faut changer
GetMailAddress = CurrentMailingAddress(0) ' <== La il faut changer

Else
GetMailAddress= note.FullName(0) ' <== La il faut changer
End If
Elseif note.Type(0) = "Group" Then
GetMailAddress = note.ListName(0) ' <== La il faut changer
Else
GetMailAddress=""
End If

pNote.Pmailaddress = ""
Call pNote.save(False,False)
End Function

Autrement si tu as ta base vide avec tes champs je te la transforme, mon email webmaster@dominoarea.org

MessagePublié: 30 Mars 2006 à 18:25
par Stephane Maillard
Re,

Tu dois modifier la fonction GetMailAdress par ceci :
Code : Tout sélectionner
Function GetMailAddress() As String
   Set pNote = db.getprofiledocument("tempvars")
   CurrentMailingAddress = pNote.Pmailaddress
   
   If note.Type(0) = "Person" Then   
      GetMailAddress = note.MailAddress(0)
   Else
      GetMailAddress=""
   End If
   
   pNote.Pmailaddress = ""
   Call pNote.save(False,False)
End Function

MessagePublié: 31 Mars 2006 à 08:22
par kikiebou

Salut,
J'ai toujours le même problème. :?
Quand j'essai d'envoyer le mail à la personne sélectionnée, il ne la trouve pas...
J'attache à ce message ce qui s'affiche sur mon écran lorsque j'essai de faire la manip.

MessagePublié: 31 Mars 2006 à 08:24
par kikiebou

avec le fichier joint....

MessagePublié: 31 Mars 2006 à 09:30
par Stephane Maillard
Salut,

Je ne comprend pas trop je viens de faire un test en mettant un contact avec l'adresse webmaster@dominoarea.org et le mail part correctement, là cela doit être un pb de paramétrage de la messagerie.

Tu peux aussi cliquer sur 'Envoyer tel quel' ou 'Ignorer nom'.

Voici ce que j'ai mis dans la fiche.

MessagePublié: 31 Mars 2006 à 09:35
par kikiebou
Moi aussi ça marche très bien, mais à condition que le contact soit également rentré dans mon carnet d'adresse perso, ou dans l'annuaire serveur.
Si c'est pas le cas, ça marche pas...
bizarre, bizarre... :roll:

MessagePublié: 31 Mars 2006 à 09:40
par Stephane Maillard
Re,

Cela veut dire que tu as une restriction pour les envois de mail vers Internet, il faut que tu voies ça avec ton administrateur Lotus Domino/Notes Ou poser la question dans le forum administration.