Mot de passe lotus

Signaler
Messages postés
170
Date d'inscription
vendredi 16 janvier 2004
Statut
Membre
Dernière intervention
13 juin 2010
-
Messages postés
170
Date d'inscription
vendredi 16 janvier 2004
Statut
Membre
Dernière intervention
13 juin 2010
-
Bonjour,

J'ai trouvé un code sur le site pour envoyer un mail avec lotus en VB. Ce que je voudrais c'est pouvoir envoyer un mail sans avoir à taper le mot de passe. La raison étant que, sur le même PC il y a plusieurs utilisateurs avec autant de sessions. Ne pouvant gérer les mots de passe à tout le monde (normal), est-il possible de passer outre ?

Merci d'avance
@+++

marcod59

7 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

J'ai pas la sytaxe exact (je l'ai au boulot) mais c'est du style

NomDeSession.Initialize("ton mot de passe")

A voir...
Mais il me semble avoir vu 2 ou 3 sources sur lotus notes, regarde par le moteur de recherche, tu trouveras peut-être ton bonheur !

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Arf, lu trop vite,

pour palier la multitude d'utilisateurs, au préalable utilise une InputBox pour récupérer la valeur.

Il peut y avoir beaucoup plus complexe :
tu stockes les mots de passe dans un module lié aux utilisateurs, et c'est ton prog qui recherche quel est l'utilisateur en cours !

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Messages postés
170
Date d'inscription
vendredi 16 janvier 2004
Statut
Membre
Dernière intervention
13 juin 2010

Salut,


Il m'est impossible de récupérer les mots de passe à tout le monde, donc je veux juste savoir s'il est possible d'envoyer un mail sans rentrer de mot de passe. Ou, s'il faut créer un nouveau compte sur lequel je me brancherais avec un mot de passe qui serait géré par une variable dans VB. Dans ce cas là, je peux me servir de ce compte avec n'importe quelle session .


@+++

marcod59
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Et le coup de l'InputBox, c'est pas bon ?

Par exemple :

Dim MotDePasse As String

MotDePasse = InputBox("Saisissez votre mot de passe")
NomDeSession.Initialize(MotDePasse)

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Messages postés
170
Date d'inscription
vendredi 16 janvier 2004
Statut
Membre
Dernière intervention
13 juin 2010

Ce serait bon si la session ouverte était toujours la même, ce qui n'est pas le cas. Et comme je te l'ai dit, impossible de connaître tous les mots de passe.


@+++

marcod59
Messages postés
170
Date d'inscription
vendredi 16 janvier 2004
Statut
Membre
Dernière intervention
13 juin 2010

Salut,


J'ai fait un essai ce matin, et j'ai un problème que je n'avais pas prévu. Comme je l'ai dit un peu avant il y a plusieurs sessions sur le PC, et lorsque je fais l'essai il ne trouve pas le fichier notes.ini


Ce fichier se trouve ailleurs que C:\Program Files\Lotus , il est dans C:\User\toto\Lotus\notes\Data . toto étant la session.


Comment je fais pour lui dire où aller chercher ce fichier, et lorsqu'il l'a trouvé est-ce que c'est lui qui lui renseigne le UserName de la session ?


De plus comme c'est pour le boulot, que je n'ai pas Lotus à la maison, et que je n'ai pas VB au boulot, j'ai essayé le code suivant dans VBA d'excel :






Public






Sub


SendNotesMail(


ByVal


Subject


As






String


,


ByVal


Attachment


As






String


, _<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>













                        



ByVal


Recipient


As






String


,


ByVal


ccRecipient


As






String


, _













                        



ByVal


bccRecipient


As






String


,


ByVal


BodyText


As






String


, _













                        



ByVal


SaveIt


As






Boolean


,


ByVal


Password


As






String


)













                        















    


Dim
Maildb
As


Object

     

'La base des mails














   

Dim
UserName
As


String

   

'Le nom d'utilisateur














   

Dim
MailDbName
As


String

 

'Le nom de la base des mails














   

Dim
MailDoc
As


Object

    

'Le mail














   

Dim
AttachME
As


Object

   

'L'objet pièce jointe en RTF














   

Dim
Session
As


Object

    

'La session Notes














   

Dim
EmbedObj
As


Object

   

'L'objet incorporé














  













    

'Crée une session notes














   

Set
Session = CreateObject(
"Notes.NotesSession"
)











  













    

'*** Cette ligne est réservée aux versions 5.x et supérieur : ***














    Session.Initialize (Password)











  













    

'Récupère le nom d'utilisateur et crée le nom de la base des mails














    UserName = Session.UserName











    MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName,
" "
))) &
".nsf"














  













    

'Ouvre la base des mails














   

Set
Maildb = Session.GETDATABASE(
""
, MailDbName)











   


If






Not


Maildb.ISOPEN


Then


Maildb.OPENMAIL













      















    


'Paramètre le mail à envoyer














   

Set
MailDoc = Maildb.CREATEDOCUMENT











   


MailDoc.Form =


"Memo"


















    MailDoc.sendto = Recipient













    MailDoc.CopyTo = ccRecipient













    MailDoc.BlindCopyTo = bccRecipient













    MailDoc.Subject = Subject













    MailDoc.Body = BodyText













   
MailDoc.SAVEMESSAGEONSEND = SaveIt











  













    

'Prend en compte les pièces jointes














   


If


Attachment <>


""






Then


















       



Set


AttachME = MailDoc.CREATERICHTEXTITEM(


"Attachment"


)













       



Set


EmbedObj = AttachME.EMBEDOBJECT(1454,


""


, Attachment,


"Attachment"


)













        MailDoc.CREATERICHTEXTITEM (


"Attachment"


)













   



End






If


















  















    



'Envoie le mail


















    MailDoc.PostedDate = Now()













    MailDoc.SEND 0, Recipient













  















    



Set


Maildb =


Nothing


















   



Set


MailDoc =


Nothing


















   



Set


AttachME =


Nothing


















   



Set


Session =


Nothing


















   


Set
EmbedObj =
Nothing













End


Sub





Je ne sais pas si ça peut fonctionner dans excel. En tout cas, il ne prend pas "Session.Initialize (Password)".
Pour pouvoir créer un .exe en VB j'ai ramené notes32.tlb du boulot pour pouvoir ajouter la référence au programme d'essai. Je l'essaierais demain, mais j'aurais toujours le problème du fichier notes.ini . J'en saurais plus demain.

Merci

marcod59
Messages postés
170
Date d'inscription
vendredi 16 janvier 2004
Statut
Membre
Dernière intervention
13 juin 2010

Voilà le code, il y a eu un problème sur le message précèdent :

Public Sub SendNotesMail(ByVal Subject As String, ByVal Attachment As String, _
                         ByVal Recipient As String, ByVal ccRecipient As String, _
                         ByVal bccRecipient As String, ByVal BodyText As String, _
                         ByVal SaveIt As Boolean, ByVal Password As String)
                        
    Dim Maildb As Object      'La base des mails
    Dim UserName As String    'Le nom d'utilisateur
    Dim MailDbName As String  'Le nom de la base des mails
    Dim MailDoc As Object     'Le mail
    Dim AttachME As Object    'L'objet pièce jointe en RTF
    Dim Session As Object     'La session Notes
    Dim EmbedObj As Object    'L'objet incorporé
  
    'Crée une session notes
    Set Session = CreateObject("Notes.NotesSession")
  
    '*** Cette ligne est réservée aux versions 5.x et supérieur : ***
    Session.Initialize (Password)
  
    'Récupère le nom d'utilisateur et crée le nom de la base des mails
    UserName = Session.UserName
    MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
  
    'Ouvre la base des mails
    Set Maildb = Session.GETDATABASE("", MailDbName)
    If Not Maildb.ISOPEN Then Maildb.OPENMAIL
      
    'Paramètre le mail à envoyer
    Set MailDoc = Maildb.CREATEDOCUMENT
    MailDoc.Form = "Memo"
    MailDoc.sendto = Recipient
    MailDoc.CopyTo = ccRecipient
    MailDoc.BlindCopyTo = bccRecipient
    MailDoc.Subject = Subject
    MailDoc.Body = BodyText
    MailDoc.SAVEMESSAGEONSEND = SaveIt
  
    'Prend en compte les pièces jointes
    If Attachment <> "" Then
        Set AttachME = MailDoc.CREATERICHTEXTITEM("Attachment")
        Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", Attachment, "Attachment")
        MailDoc.CREATERICHTEXTITEM ("Attachment")
    End If
  
    'Envoie le mail
    MailDoc.PostedDate = Now()
    MailDoc.SEND 0, Recipient
  
    Set Maildb = Nothing
    Set MailDoc = Nothing
    Set AttachME = Nothing
    Set Session = Nothing
    Set EmbedObj = Nothing
End Sub

marcod59