IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

envoyer un mail depuis VBA access


Sujet :

Access

  1. #1
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 155
    Points : 111
    Points
    111
    Par défaut envoyer un mail depuis VBA access
    Salut à tous,

    j ai des difficultés pour envoyer un mail (avec pièce jointe) depuis VBA access vers Lotus Notes. je sais que vous allez me renvoyer vers le faq; j'y suis déjà aller, j ai trouvé le code correspondant; seulement il y a trop de points obscurs. je m'explique:

    1°) jne comprend pas pourquoi on utilise une fonction qui reçoit des arguments?

    2°) jne comprend pas la ligne suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
    3°) jne comprend pas celle ci également:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Maildb = Session.GETDATABASE("", MailDbName)
    .

    4°) la derniere. j'aurais également souhaité savoir quel librairie je doit utilisé pour l'envoi des mails; parce que j'ai fait quelques tests et ça ne marche pas

    voici le code du faq; pour vous aiguiller par rapport aux questions que j ai posé


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    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
    Merci à tous

  2. #2
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    1- les arguments correspondent aux paramètres nécessaires à l'envoi du mail:
    destinataire,
    destinataire en copie,
    destinataire en copie cachée,
    objet du message,
    teste du message,
    pièce attachée,
    sauvegarde du message,
    mot de passe

    cela permet de configurer ton message sans avoir à saisir quoique ce soit dans Lotus.

    2- avec lotus, il doit falloir nommer la base mail avec le nom utilisateur.
    le bout de code doit segmenter le nom utilisateur de façon à le faire correspondre au nom de ta boite mail

    3- cela ouvre la base de données Lotus

    4 - dans les références Access, tu dois avoir des noms de librairies LOTUS
    coches les.

  3. #3
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 155
    Points : 111
    Points
    111
    Par défaut
    c'est super! ça marche

    per contre j ai encore un probleme; il ouvre à chaque fois ma boîte note, et me demande mon passe avant d'envoyer les données.

    je voudrais qu'il puisse les envoyer directement sans ouvrir note ou me demander mon passe.

    si vous avez une idée

    merci

  4. #4
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 183
    Points : 1 362
    Points
    1 362
    Par défaut
    Dans le dernier paramêtre, met ton pass.

  5. #5
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 155
    Points : 111
    Points
    111
    Par défaut
    jne comprend pas très bien ce que tu veux dire

    Merci

  6. #6
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 183
    Points : 1 362
    Points
    1 362
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    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, [b]ByVal Password As String[/b])
    Le dernier paramêtre à passer, c'est ton password.
    Renseigne le dans l'appel de la Sub, et ça le fait (j'utilise la même Sub et je n'ai pas de problème).

  7. #7
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 155
    Points : 111
    Points
    111
    Par défaut
    salut,

    merci pour ta réponse; mais jne peux pas appliquer ta méthode, parce que lorsque je passe des arguments à ma fonction public sub, l'exécution se bloque. j'ai donc réadapté mon programme en supprimant les arguments, comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    Public Sub Envoi_MAil()
     
        Dim Maildb          As Object
        Dim UserName        As String
        Dim MailDbName      As String
        Dim attachment      As String
        Dim subject         As String
        Dim recipient       As String
        Dim BodyText        As String
        Dim MailDoc         As Object
        Dim AttachME        As Object
        Dim Session         As Object
        Dim EmbedObj        As Object
        Dim password        As String
     
        'Crée une session notes
        Set Session = CreateObject("Notes.NotesSession")
     
        'Session.Initialize (password)
        password = "romarique"
     
        attachment = "E:\ROMARIQUE\ZinstalNF\2006 02 23.xls"
        subject = "essai"
        BodyText = "c'est juste un essai"
        recipient = "dongmor23@hotmail.com"
        'password = "romarique"
     
        '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.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
    jne comprend déjà pas pourquoi jne peux pas passer d'arguments dans ma fonction? je n'arrive non plus à initialiser le mot de passe.

    si quelqu'un a une idée.....................................
    merci

  8. #8
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    Qu'est ce qui bloque ?

    Peux tu être plus clair dans tes propos ?

    Y a t'il un message d'erreur ? Quel est il ?

  9. #9
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 155
    Points : 111
    Points
    111
    Par défaut

    le programme marche bien, mais seulement à chaque fois il lance lotus et me demande le mot de passe avant d'envoyer les données. mais je voudrais qu'il puisse directement envoyer les données sans ouvrir lotus et me demander mon mot de passe.

    j'espère que j'ai été plus clair
    merci

  10. #10
    Membre régulier
    Inscrit en
    Mars 2002
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 97
    Points : 71
    Points
    71
    Par défaut
    Tu as quel version de Lotus?

    Le password ne fonctionne que sur certaines versions (ça ne fonctionne ni sur la 5.0, ni sur la 6.5 par exemple).

    Le seul moyen que ça fonctionne est de laisser Lotus loggué tout le temps...

  11. #11
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 155
    Points : 111
    Points
    111
    Par défaut
    en effet j'ai la version 5.0 ; je suis un peu embétée

Discussions similaires

  1. [XL-2010] Envoyer en automatique depuis VBA Excel un mail à une liste de diffusion de Thunderbird
    Par RANDOLOISIRS dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 08/03/2014, 18h41
  2. [AC-2010] impossible d'envoyer un mail depuis Access
    Par Ragmaxone dans le forum Macros Access
    Réponses: 9
    Dernier message: 22/08/2013, 14h44
  3. [AC-2003] Envoyer des mails depuis Access
    Par miniwho dans le forum VBA Access
    Réponses: 0
    Dernier message: 01/07/2013, 10h08
  4. Réponses: 4
    Dernier message: 19/03/2009, 09h57
  5. Envoi de mail depuis VBA access
    Par pev15 dans le forum VBA Access
    Réponses: 26
    Dernier message: 09/06/2008, 11h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo