marcod59
Messages postés170Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention13 juin 2010
-
22 août 2006 à 17:27
marcod59
Messages postés170Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention13 juin 2010
-
23 août 2006 à 17:04
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 ?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 22 août 2006 à 17:50
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"
<!--
marcod59
Messages postés170Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention13 juin 2010 22 août 2006 à 18:05
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és170Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention13 juin 2010 22 août 2006 à 18:18
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és170Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention13 juin 2010 23 août 2006 à 17:00
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
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.
marcod59
Messages postés170Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention13 juin 2010 23 août 2006 à 17:04
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