J'ai besoin de réaliser un envoi d'un mail avec adresse mail, objet et message simple à partir d'une base access sur des postes où outloock n'est pas installé
Avec Outlook aucun problème mais avec thunderbird je bloque
Merci de vos conseils
Fabrice
J'ai besoin de réaliser un envoi d'un mail avec adresse mail, objet et message simple à partir d'une base access sur des postes où outloock n'est pas installé
Avec Outlook aucun problème mais avec thunderbird je bloque
Merci de vos conseils
Fabrice
Je suggère une solution sans usage des SendKeys, ce qui est une très mauvaise idée (si un programme passe en premier plan, c'est lui qui se prend les sendkeys)
Dans un module de classe :
Comment l'utiliser ?
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80 '============================================================================== 'MODULE D'ENVOI D'EMAIL en CDO ' ' Auteur : Maxence Hubiche ' Date : 11/10/2007 ' Email : <a href="mailto:mhubiche@redaction-developpez.com">mhubiche@redaction-developpez.com</a> ' Copyright : Ce code est libre de copie/recopie/modification, dans la mesure où ' ces quelques lignes de commentaires restent inchangées ' Remarques : ' 1- Il n'est pas utile de cocher la référence Microsoft CDO ' 2- Vous devez avoir un profil de défini dans le panneau de ' configuration / Courrier '=============================================================================== 'Variables pour les objets CDO Private m_oSession As MAPI.Session 'Variables de configuration de l'envoi Private m_strProfile As String 'Constantes pour e module Const con_NON_DEFINI As String = "Non défini" '=============================================================================== ' PROPRIETE PROFIL (Lecture/Ecriture) ' Il faut ici déterminer le nom du profil qui procède à l'envoi '=============================================================================== Property Get Profil() As String If m_strProfile = "" Then Profil = conNON_DEFINI Else Profil = m_strProfile End If End Property Property Let Profil(NomProfile As String) m_strProfile = NomProfile End Property '=============================================================================== ' METHODE SENDMESSAGE (Sub) ' Envoie le message en fonction des paramètres de login '=============================================================================== Public Sub SendMessage(Objet As String, Contenu As String, destinataires As String) 'Variable pour le message Dim oMsg As Object Dim oDest As Object Dim iDest As Long 'Ouverture de la session m_oSession.Logon m_strProfile, , , False 'Création du nouveau message Set oMsg = m_oSession.Outbox.Messages.Add With oMsg ' Définition du contenu du message .Subject = Objet .Text = Contenu ' ' Ajout d'un objet destinataire à la collection omsg.Recipients Set oDest = oMsg.Recipients.Add ' Définition des propriétés de l'objet destinataire. oDest.Name = CStr(destinataires) 'oDest.Resolve ' Envoi du message. Si showDialog a la valeur False, ' le message est envoyé sans être affiché ' et sans nécessiter l'intervention de l'utilisateur. ' Si showDialog a la valeur True, ' le message est affiché et l'utilisateur doit activer ' l'envoi à partir de la boîte de dialogue du message. .Send showDialog:=False End With End Sub Private Sub Class_Initialize() ' Création de l'objet session. Set m_oSession = CreateObject("mapi.session") End Sub Private Sub Class_Terminate() 'Fin de la session m_oSession.Logoff ' Réinitialisation Set m_oSession = Nothing End Sub
Voici un exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Dim x As New Email x.Profil = "mh" x.SendMessage "test", "oulalala!", "<a href="mailto:m@t.com">m@t.com</a>" set x=nothing
Bonjour,
J'essaie d'appliquer votre module de classe à mon application ACCESS (2010) mais je bloque au tout début car il refuse de reconnaitre l'API: je ne le retrouve pas dans les références pour l'activer. J'ai vérifié que la dll (mapi32.dll) se trouvait bien dans C:\Windows\System32. J'ai même téléchargé ExchangeMapiCdo et l'ai exécuté et j'obtiens toujours la même erreur au déboguage sur la ligne:
Private m_oSession As mapi.Session
"Erreur de compilation
Type défini par l'utilisateur non défini"
Il me semble que cela signifie qu'Access ne trouve pas la référence... que je ne peux pas activer...
Merci de me sortir de ce mauvais pas. Je précise que mon but est d'envoyer des e-mails directement depuis mon application en utilisant Mozilla de préférence mais que l'Explorer fera tout aussi bien l'affaire...
Cem
Il y a beaucoup plus simple : utiliser mailto avec FolowHyperlink
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
Merci,
effectivement c'est une meilleure méthode, j'ai déjà réussi à m'envoyer un mail c'est un peu basic... y a -t-il un tuto qui explique les différentes possibilité (attachements, copies, etc): j'ai cherché sur le site mais je n'ai trouvé que des bribes par l'intermédiaire d'autres utilisateurs qui posaient des questions
Merci pour la réponse
Cem
C'est pas si basique que ça tu peux mettre des pièces jointes, un objet, le contenu que tu veux dans le corps (si tu veux du texte enrichi il te faut le générer toi-même par contre), le mailto et limité à 2048 caractères je crois bien que les RFC's ne mettent pas de limites.
La seule contrainte que je trouve est l'ouverture d'un mail vierge mais l'envoi ne se fait que par l'appui de envoyer. Avec Outlook, tu peux envoyer en tache de fond (mais c'est pas dit que ce soit insoluble).
Vu que j'ai déjà utilisé mailto, je peux essayer de t'aider si tu coinces.
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
Merci pour ta proposition de m'aider,
Pour le moment tout roule et j'arrive à mettre un titre(subject) et une message (body) dans l'e-mail. Il ne me manque plus qu'a trouver comment joindre un fichier (pdf par exemple)... et ça je n'ai pas trouvé de doc là dessus... alors as tu une réponse?
Merci pour ton aide
Cem
Tu ajoutes "&attachment=" & [nom du fichier" dans l'url du mailto
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
J'ai essayé de multiples manières en mettant, enlevant, rajoutant des guillemets mais rien n'y fait :la messagerie s'ouvre avec destinataire, subject et body bien rempli mais aucune pièce ne vient s'attacher!! En fouillant dans le Forum j'ai vu que Vil'Coyote, un des modérateurs, disait que ce n'était pas possible!! I am perplexe!
A tout hasard voilà un bout de code: toutes les variables sont dimées string
Titre = "essai de message"
TitreMail = "?subject=" & Titre
Message = InputBox("Entrez un message à envoyer!", "Message")
BodyMail = "&body=" & Message
FichierJoint = "C:\CaptFile.txt"
AttachMail = "&attachment=" & FichierJoint
Application.FollowHyperlink "mailto:" & EmailAdr & TitreMail & BodyMail & AttachMail
Pour Info: AttachMail donne : &attachment= C:\CaptFile.txt
..y a til une Solution??
Merci
Cem
et si tu essayes avec un fichier dans le même dossier que le fichier access (donc sans chemin d'accès) ça donne quoi ?
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
J'ai essayé... mais je ne suis pas sur d'avoir trouvé le bon dossier: tu veux dire le dossier ou se trouve le fichier access.exe ?
Et tapant "access" dans : démarrer-Rechercher les Programmes et Fichiers je ne trouve que l'adresse suivante qui est celle du raccourci!!
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Office
... c'était plus facile sous Windows xp!
De toutes manière j'ai fait plusieurs essais et je n'ai même pas un message d'erreur qui me dit que le chemin d'accès est introuvable... ce qui est étonnant!donc c'est comme si mozilla-thunderbird ne tenait pas compte de l'argument "&attachement=....
Merci pour ton aide
Cem
Non, celui ou se trouve la base.tu veux dire le dossier ou se trouve le fichier access.exe ?
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
Ah oui! ça c'est plus simple.... mais ça marche pô non plus!!![]()
Je pense que j'ai la solution.
Il semblerait que Thunderbird bloque la fonction attachment avec mailto par sécurité. Par contre tu peux génrer un mail en appelant thunderbird en ligne de commande comme cela :
http://kb.mozillazine.org/Command_li...Thunderbird%29
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
Alors là t'es trop fort! C'est exactement ce qu'il fallait faire, le lien que tu donnes redirige sur la page MozillaZine et il y a tous les détails de programmation qui est une peu différente de "mailTo". ça doit effectivement être pour des questions de sécurité que mailto n'aboutit pas.
Il est précisé qu'il faut toujours appuyer sur "envoyer" pour faire partir le message; il n'existe pas de commande pouvant l'effectuer selon MozillaZine
Merci encore
Cem![]()
Avec Outlook, c'est pareil, la génération d'un mail depuis l’extérieur déclenche une confirmation et de mémoire une temporisation.Il est précisé qu'il faut toujours appuyer sur "envoyer" pour faire partir le message; il n'existe pas de commande pouvant l'effectuer selon MozillaZine
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager