SendObject: le mail n'arrive pas

Dulfalas Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
Dulfalas Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour a tous,
Je développe actuellement pour mon stage un logiciel access qui a moment donné doit effectuer un envoit de mail automatique. Apres quelques recherches j'ai trouvé la methode SendObject et je l'ai utilisé. Mon code VB et de la forme :

DoCmd.SendObject acSendNoObject, "", "", "toto@free.fr", "", "", "toto", "toto toto tata", True

un seul soucis: le mail n'arrive jamais a destination. Je n'ai aucun message d'erreur de la part d'access, ni du logiciel qui s'ouvre lors du lancement du mail (je supose qu'il s'agit d'outlook), mais une fois que je vais vérifier dans ma boite mail, aucun message ne s'y trouve. Et la j'avoue etre dépassé ^^

Quelqu'un pourrait m'aider a y voir plus clair et a résoudre mon problème svp ?

Merci d'avance ^^

Edit: Un petit indice peut etre, il semblerait que les messages ne soient envoyés que lorsque j'ouvre moi même ma boite outlook avant de lancer la procédure d'envoit automatisée.

1 réponse

Dulfalas Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai trouvé une solution qui me convient a peu pres: j'ouvre automatiquement outlook avant chaque envoit de mail grace au code suivant (trouvé sur le net)

Function Outlook_LOGIN() As Boolean
Dim MAILBOX_STATE, Folder
On Error GoTo Outlook_Login_Err
Set Outlook = GetObject(, "Outlook.Application")
If Outlook Is Nothing Then
recup_err:
Set Outlook = CreateObject("Outlook.Application")
Set MAPI = Outlook.GetNamespace("MAPI")
MAILBOX_STATE = 200
Set Folder = MAPI.GetDefaultFolder(6)
Folder.Display
End If
 
Exit Function
Outlook_Login_Err:
If Err.Number <> 0 Then
If Err.Number = 429 Then
GoTo recup_err
End If
Exit Function
End If
End Function


un autre soucis se pose alors.

Apres mon envoit de mail j'utilise la commande " set outlook = nothing " pour quiter outlook mais ca ne le ferme pas. Et si l'utilisateur le ferme a la main, lors de l'envoit de mail suivant le programme considère qu'il est encore ouvert, et donc ne le réouvre pas, cependant ensuite le mail ne part pas, car outlook est fermé Oo

une solution de fortune considère a ouvrir sans condition outlook a chaque envoit, mais dans ce cas, si outlook est deja ouvert on a 2 fenetres outlook, si il est ouvert 2 fois on en a 3... etc

j'aimerais donc de l'aide pour fermer outlook automatiquement.

De plus, j'aimerais pouvoir bind a la fin du mail une signature automatique mais je ne trouve pas de manière de le faire (sachant qu'il n'y a qu'une seule signature par compte mais qu'on ignore son nom a chaque fois)
0
Dulfalas Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Bon, j'ai reussi a trouver une solution pour mon envoit de piece jointe mais j'ai un nouveau problème, pour mon envoit j'utilise maintenant ce code :

Sub UseOutlook()
    
    Call RecupInfo(MailFourn, MailEmp, CorpTexte, Entete, PieceJointe)
    Dim Mail_Outlook As Object
    Dim Message_Outlook As Object
    Dim Body_mail As String
    Set Outlook = CreateObject("Outlook.Application")
    Call Outlook_LOGIN
    
    Set Message_Outlook = Outlook.CreateItem(0)
    Message_Outlook.To = MailFourn
    Message_Outlook.Cc = MailEmp & "; ***@***.com; ***@***.com"
    Message_Outlook.Bcc = ""
    Message_Outlook.Subject = Entete
    Message_Outlook.body = CorpTexte
    Message_Outlook.Attachments.Add PieceJointe
    Message_Outlook.Display
     
    'Message_Outlook.send en commentaire car je veux que ce soit l'utilisateur qui envoi le mail.
    
    Set Outlook = Nothing
End Sub



problème : mon ancien code générait une erreur quand on fermait outlook sans avoir envoyé le mail, et lui non. Or j'ai besoin de cette erreur car si outlook est fermé avant l'envoit du mail un enregistrement dans ma base de donnée ne doit pas etre fait. Quelqu'un a une idée sur la solution a ce problème: comment a partir de ce code stopper le programme sur un message d'erreur si on ferme outlook sans envoyer le mail ?
0