Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Envoyer un e-mail avec un émetteur particulier

7 réponses
Avatar
Eric
Bonjour,
Je veux envoyer un e-mail depuis un formulaire. L'envoi fonctionne (en
passant par Outlook), mais lorsqu'Outlook est ouvert, Access utilise le
profil ouvert dans Outlook. Si je le ferme, il me permet de choisir le
profil à utiliser. Ce que je cherche à faire, c'est envoyer un e-mail en
utilisant un émetteur particulier. Est-ce que la librairie de Raymond le
permet facilement ?

7 réponses

Avatar
3stone
Salut,

"Eric"
| Je veux envoyer un e-mail depuis un formulaire. L'envoi fonctionne (en
| passant par Outlook), mais lorsqu'Outlook est ouvert, Access utilise le
| profil ouvert dans Outlook. Si je le ferme, il me permet de choisir le
| profil à utiliser. Ce que je cherche à faire, c'est envoyer un e-mail en
| utilisant un émetteur particulier. Est-ce que la librairie de Raymond le
| permet facilement ?


Je te propose d'utiliser la fonction "SendMailCDO()"

http://www.3stone.be/access/articles.php?lng=fr&pg‰

tu pourras spécifier l'émetteur que tu souhaite.


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Eric
3stone wrote:
Salut,

"Eric"
Je veux envoyer un e-mail depuis un formulaire. L'envoi fonctionne
(en passant par Outlook), mais lorsqu'Outlook est ouvert, Access
utilise le profil ouvert dans Outlook. Si je le ferme, il me permet
de choisir le profil à utiliser. Ce que je cherche à faire, c'est
envoyer un e-mail en utilisant un émetteur particulier. Est-ce que
la librairie de Raymond le permet facilement ?



Je te propose d'utiliser la fonction "SendMailCDO()"

http://www.3stone.be/access/articles.php?lng=fr&pg‰

tu pourras spécifier l'émetteur que tu souhaite.


Merci de ta réponse, je pense que c'est ce qu'il me faut. Par contre, ça
manque un peu de doc pour ceux ne connaissant pas VBA. Dois-je mettre cette
fonction dans le code correspondant à mon bouton d'envoi, ou la déclarer
simplement dans le code et ensuite faire un appel dans le code du bouton
d'envoi ? Dans ce dernier cas, quels sont les paramètres de la fonction ?


Avatar
3stone
Salut,

"Eric"
[...]
| Merci de ta réponse, je pense que c'est ce qu'il me faut. Par contre, ça
| manque un peu de doc pour ceux ne connaissant pas VBA. Dois-je mettre cette
| fonction dans le code correspondant à mon bouton d'envoi, ou la déclarer
| simplement dans le code et ensuite faire un appel dans le code du bouton
| d'envoi ? Dans ce dernier cas, quels sont les paramètres de la fonction ?


Tu essayes de faire une usine à gaz par copier/coller, sans comprendre
ce que tu fais au moins de par la structure ???

T'es tu donné la peine de regarder les codes créés par les assistants lorsque
tu les utilisent pour créer un bouton ou une liste déroulante etc ?
C'est par là qu'il faut commencer lorsque l'on ne veut pas se limité
à "singer" ce que l'on voit défiler sur ce forum ;-)



Bon, passons !

Oui, tu peux placer le code dans la sub de l'événement click d'un bouton.
(mais aussi en faire une fonction à laquelle on passe les données variables)

La sub devient alors :

Sub cmdBoutonSend_Click()
Dim Message As New cdo.Message

With Message
.From = Me.[ChampExpediteur]
.To = Me.[ChampDestinataire]
.Subject = "sujet du mail"
.TextBody = "Le corps du message"
' .AddAttachment ("c:cheminfichier.ext")
.Send
End With
Set Message = Nothing

End Sub


Et ici encore, tu doit définir ce que sera le "sujet du message",
et le "corps du message". Cela peut être un fichier externe, un champ mémo
ou un inputbox ou même un état.


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Eric
3stone wrote:
Salut,

"Eric"
[...]
Merci de ta réponse, je pense que c'est ce qu'il me faut. Par
contre, ça manque un peu de doc pour ceux ne connaissant pas VBA.
Dois-je mettre cette fonction dans le code correspondant à mon
bouton d'envoi, ou la déclarer simplement dans le code et ensuite
faire un appel dans le code du bouton d'envoi ? Dans ce dernier cas,
quels sont les paramètres de la fonction ?



Tu essayes de faire une usine à gaz par copier/coller, sans comprendre
ce que tu fais au moins de par la structure ???

T'es tu donné la peine de regarder les codes créés par les assistants
lorsque tu les utilisent pour créer un bouton ou une liste déroulante
etc ?
C'est par là qu'il faut commencer lorsque l'on ne veut pas se limité
à "singer" ce que l'on voit défiler sur ce forum ;-)

Mon but n'est pas d'apprendre le VBA (je n'en ai pas le temps), mais de

simplifier la gestion d'une base dans les plus brefs délais. Donc, çan e me
permet pas de m'étendre trop sur le pourquoi du comment. Et pour se mettre à
un langage, il faut bien commencer par un bout.


Bon, passons !

Oui, tu peux placer le code dans la sub de l'événement click d'un
bouton. (mais aussi en faire une fonction à laquelle on passe les
données variables)

La sub devient alors :

Sub cmdBoutonSend_Click()
Dim Message As New cdo.Message

With Message
.From = Me.[ChampExpediteur]
.To = Me.[ChampDestinataire]
.Subject = "sujet du mail"
.TextBody = "Le corps du message"
' .AddAttachment ("c:cheminfichier.ext")
.Send
End With
Set Message = Nothing

End Sub


Et ici encore, tu doit définir ce que sera le "sujet du message",
et le "corps du message". Cela peut être un fichier externe, un champ
mémo ou un inputbox ou même un état.


Merci pour ta réponse.


Avatar
Eric
J'ai pu utiliser la fonction, et même la modifier (comme quoi il n'est pas
besoin d'être un pro du VBA pour l'utiliser).
J'ai rajouté un paramètre pour ajouter une pièce jointe à l'e-mail.

Function SendMailCDO(Sender As String, Receiver As String, _
Subject As String, BodyText As String, _
Optional Cc As String, Optional Bcc As String, Optional Attachment As
String)

Dim Cdo_Message As New CDO.Message

Set Cdo_Message.Configuration = GetSMTPServerConfig()

With Cdo_Message
.To = Receiver
.From = Sender
.Subject = Subject
.Cc = Cc
.Bcc = Bcc
.TextBody = BodyText
.AddAttachment (Attachment)
.Send


Dans l'un des appels à la fonction, je ne mets rien dans le paramètre
Attachment pour ne pas avoir de pièce jointe, mais j'en ai tout de même une,
un fichier ATTxxxxx.dat vide de données. Comment le supprimer ?

Dans la fonction GetSMTPServerConfig(), j'ai également rajouté
.Item(cdoInReplyTo) = "" pour changer l'adresse de réponse,
mais ça ne semble pas marcher. C'est la bonne propriété ?
Avatar
3stone
Salut,

"Eric"
| J'ai pu utiliser la fonction, et même la modifier (comme quoi il n'est pas
| besoin d'être un pro du VBA pour l'utiliser).
| J'ai rajouté un paramètre pour ajouter une pièce jointe à l'e-mail.


Bricoler sans comprendre ne s'appelle pas 'modifier' ;-)


| Function SendMailCDO(Sender As String, Receiver As String, _
| Subject As String, BodyText As String, _
| Optional Cc As String, Optional Bcc As String, Optional Attachment As
| String)
|
| Dim Cdo_Message As New CDO.Message
|
| Set Cdo_Message.Configuration = GetSMTPServerConfig()
|
| With Cdo_Message
| .To = Receiver
| .From = Sender

.ReplyTo =

| .Subject = Subject
| .Cc = Cc
| .Bcc = Bcc
| .TextBody = BodyText

if Len([zoneDeTexte])>0 then

.AddAttachment (Attachment)

end if


| .Send
|
|
| Dans l'un des appels à la fonction, je ne mets rien dans le paramètre
| Attachment pour ne pas avoir de pièce jointe, mais j'en ai tout de même une,
| un fichier ATTxxxxx.dat vide de données. Comment le supprimer ?


ne pas attacher si pas attachement comme indiqué !


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
twgfi
Le jeudi 16 Novembre 2006 à 02:13 par 3stone :
Salut,

"Eric"
| Je veux envoyer un e-mail depuis un formulaire. L'envoi fonctionne (en
| passant par Outlook), mais lorsqu'Outlook est ouvert, Access utilise le
| profil ouvert dans Outlook. Si je le ferme, il me permet de choisir le
| profil à utiliser. Ce que je cherche à faire, c'est envoyer un
e-mail en
| utilisant un émetteur particulier. Est-ce que la librairie de Raymond
le
| permet facilement ?


Je te propose d'utiliser la fonction "SendMailCDO()"

http://www.3stone.be/access/articles.php?lng=fr&pg‰

tu pourras spécifier l'émetteur que tu souhaite.


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/


Bonjour,

J'ai tenté d'utiliser las messages Cdo, mais j'ai un souci.
Sur la ligne .Send, le code passe en erreur avec le message "e;e;La valeur de configuration "e;e;SendUsing"e;e; est non valide

As tu une idée d'où cela peut provenir?

Ci-dessous mon code

Function Envoi_mail_CDO()

Dim Db As DAO.Database
Dim rc As DAO.Recordset
Set Db = CurrentDb

Dim Cdo_Message As Object
Set Cdo_Message = CreateObject("CDO.Message")
Dim Corps As String
' récupération de l'adresse de l'émetteur
Requete = "SELECT T_Paramétrage.Adresse_origine "
Requete = Requete & "FROM T_paramétrage "
Set rc = Db.OpenRecordset(Requete)
If Not rc.EOF Then
adresse_emetteur = rc.Fields(0).Value
End If
' On boucle sur l'ensemble des destinataires
Requete = "SELECT T_destinataires_filtre.Adresse_mail, T_destinataires_filtre.Selection"
Requete = Requete & " From T_destinataires_filtre "
Requete = Requete & "WHERE (((T_destinataires_filtre.Selection)=True));"
Set rc = Db.OpenRecordset(Requete)
If Not rc.EOF Then
Do While Not rc.EOF
' On charge l'adresse mail du destinataire
adresse_destinataire = rc.Fields(0).Value

With Cdo_Message
.To = adresse_destinataire
.From = adresse_emetteur
'.Subject = Me.lbl_objet.Value
.Subject = "essai envoi mail access"
' Corps du mail
Corps = "Ceci est mon premier essai d'envoi de mail depuis Access"
.TextBody = Corps
' envoie le message
.Send
End With
rc.MoveNext
Set Cdo_Message = Nothing
Loop

End If

MsgBox ("Vos messages ont été correctement envoyés"), vbExclamation
End Function