Je souhaite envoyer un courrier électronique à partir de Microsoft Access sans assistance à l'aide de VBA. Je comprends que la méthode intégrée "SendObject" utilise MAPI signifiant des invites de sécurité et quelque chose comme Outlook configuré. Puisque je veux utiliser le planificateur de tâches pour lancer différents rapports, je m'éloigne de MAPI et préférerais une autre solution. Pas une demande d'expédition, mais juste en interne. Des idées?Courrier électronique utilisant Access et VBA sans MAPI
Répondre
Vous aurez besoin d'un serveur SMTP qui vous permettra d'envoyer des emails. Ensuite, vous devez utiliser l'objet de message CDO.
Vous trouverez peut-être le Access EMail FAQ de Tony Toews.
Voici le code de test qui a fonctionné pour moi avec CDO et Gmail.
Sub mtest()
Dim cdoConfig
Dim msgOne
Set cdoConfig = CreateObject("CDO.Configuration")
With cdoConfig.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = 465
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "gmailname"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "yourpw"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Update
End With
Set msgOne = CreateObject("CDO.Message")
Set msgOne.Configuration = cdoConfig
msgOne.To = "[email protected]"
msgOne.From = "[email protected]"
msgOne.Subject = "Test email"
msgOne.TextBody = "It works just fine"
msgOne.send
End Sub
été à la recherche de code qui fonctionne parfaitement avec gmail. J'ai foiré sur la configuration de smtpauthenticate. Merci! – killerbarney
Je le fais de cette façon, notez, vous devez avoir installé Outlook pour que cela fonctionne.
Sub btnSendEmail_Click()
Dim OutApp As Object
Dim OutMail As Object
Application.ScreenUpdating = False
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
strBody = "<html><head></head><body>"
strBody = strBody & "Your message goes here"
strBody = strBody & "</body></html>"
Set OutMail = OutApp.CreateItem(0)
OutMail.To = "[email protected]"
OutMail.BCC = "[email protected]"
OutMail.Subject = "Test message"
OutMail.HTMLBody = strBody
OutMail.Send 'Send | Display
Set OutMail = Nothing
End Sub
Je ne voulais pas utiliser Outlook car il fonctionnerait sans surveillance, probablement dans un compte sans Outlook installé. – Knox
Redemption Outlook est gratuit et très largement utilisé: http://www.dimastr.com/redemption/
Il est très très proche du modèle objet de perspectives d'origine, de sorte que la courbe d'apprentissage est le gâteau :)
Merci pour la suggestion. – Knox
- 1. Envoi d'un courrier électronique à partir de MS Access Aucune DLL tierce autorisée
- 2. fonction de courrier électronique
- 3. analyse du courrier électronique
- 4. Sauvegarde du courrier électronique
- 5. Traitement du courrier électronique entrant
- 6. Vidéo dans le courrier électronique?
- 7. Windows scripting à envoyer par courrier électronique en utilisant TLS
- 8. DTS Envoyer une tâche de courrier électronique envoie deux fois le courrier électronique
- 9. Téléchargement de fichier et courrier électronique dans JSP
- 10. Caractères sauvages consécutifs dans le courrier électronique
- 11. Visionneuse de courrier électronique HTML dans wxPython
- 12. fonction d'envoi de courrier électronique deux fois
- 13. access vba: Erreur d'exécution 3734
- 14. Comment envoyer un courrier électronique à l'adresse ASP.Net/MVC
- 15. Caractères spéciaux dans le courrier électronique d'Oracle pl/sql
- 16. Envoi de courrier électronique via DatabaseMail avec C#
- 17. Faire des URLs dans le courrier électronique fonctionne avec x_path
- 18. Nouvelles notifications par courrier électronique dans Gnus pour Emacs
- 19. décoder un en-tête de courrier électronique UTF8
- 20. Protocole d'URL personnalisé dans Windows - liens d'envoi par courrier électronique
- 21. Existe-t-il des options pour le courrier électronique sécurisé?
- 22. Exemple correctement formaté pour l'accès au courrier électronique Python iMAP?
- 23. Le courrier électronique en texte clair/HTML ne fonctionne pas avec le client de messagerie électronique
- 24. Exception de connexion essayant d'envoyer un courrier électronique en Java
- 25. Django: envoyer par courrier électronique des erreurs Gmail par intermittence?
- 26. liste blanche de courrier électronique/liste noire dans python/django
- 27. Comment obtenir un titre d'e-mail en utilisant MAPI sur Windows Mobile?
- 28. Comment envoyer un courrier électronique en utilisant un serveur SMTP avec Windows Script?
- 29. Extrait Pièces jointes de courrier électronique à partir d'Outlook (serveur d'échange) en utilisant C#
- 30. Impossible d'envoyer un courrier électronique utilisant le serveur 3ème partie (IIS 7, Windows Server 2008, ASP.NET)
Je pensais que CDO est venu avec IIS - Je l'utilise sur le client? Pour le serveur SMTP serais-je capable d'utiliser quelque chose comme Gmail? – Knox
Oui, utilisez-le dans le VBA. Je n'ai rien trouvé qui limite cela à IIS ou même Exchange, mais vous pouvez avoir des problèmes avec votre fournisseur. Je ne sais pas assez sur Gmail. Je suppose qu'ils vous permettent de vous connecter avec Outlook via SMTP (je sais que vous ne voulez pas faire cela avec votre application, mais ce serait un bon test de connexion.). – JeffO
J'utilisais vraiment gmail comme exemple; Je pense qu'ils utilisent un port inhabituel ou quelque chose. Je vais essayer CDO. – Knox