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

Envoi d'email par CDO

4 réponses
Avatar
Luis
J’ai du changer le disque dur de mon pc et installé Windows XP, Access 2003
et une base de données qui fonctionne depuis 3 ans sur le vieux DD qui a
laché.

Sur clic d’un formulaire de cette base de données j’envoi un Etat par email.
Mais depuis que j’ai tout réinstallé sur le nouveau DD le CDO ne fonctionne
plus (l’email n’arrive pas).

Sur le bouton du formulaire j’ai :

Private Sub CDO_Click()

DoCmd.OutputTo acOutputReport, "MonEtat", acFormatHTML, "C:\MonEtat.htm"

SendMailCDO


Dans un Module :
Sub SendMailCDO()

On Error Resume Next

Dim Message As New CDO.Message
With Message
.To = "toto@domaine.fr"
.Subject = "MonEtat"
.TextBody = "Bonne jounnée"
.AddAttachment ("C:\ MonEtat.htm")
.Send
End With
Set Message = Nothing

If Dir("C:\ MonEtat.htm") <> "" Then Kill "C:\ MonEtat.htm"

End Sub


Dans les références :
Microsoft CDO for Exchange 2000 librairy

Le chemin : C:\Program Files\Fichiers communs\Microsoft Shared\CDO\cdoex.dll

J’ai enregistré la librairie pour être sûr : regsvr32 "C:\Program
Files\Fichiers communs\Microsoft Shared\CDO\cdoex.dll"

Est-ce que j’ai oublié quelque chose pour que cela fonctionne ?
J’ai enlevé le If Dir("C:\ MonEtat.htm") <> "" Then Kill "C:\ MonEtat.htm"
et “MonEtat.htm” se trouve bien sur le disque dur.
Si vous avez une idée ?
Merci pour tout.
Luis

4 réponses

Avatar
Pascal
Hello,
oui sauf erreur, je pense que tu as oublié de configurer le serveur SMTP
(courrier sortant )
----------------------------
Dim Cdo_Message As New CDO.Message
Set Cdo_Message.Configuration = GetSMTPServerConfig()
----------------------------
Function GetSMTPServerConfig() As Object
'prendre la configuration du serveur SMTP
Dim Cdo_Config As New CDO.Configuration
Dim Cdo_Fields As Object
Set Cdo_Fields = Cdo_Config.Fields
With Cdo_Fields
'le port est défini
.Item(cdoSendUsingMethod) = cdoSendUsingPort
'Définir le serveur (ServeurSmtpSociété contient le nom du
serveur
.Item(cdoSMTPServer) = ENTREZ ICI LE NOM DU SERVEUR
'effectue le changement
.Update
End With
Set GetSMTPServerConfig = Cdo_Config
Set Cdo_Config = Nothing
Set Cdo_Fields = Nothing
End Function
-----------------------------
Pascal



"Luis" a écrit dans le message de news:

J’ai du changer le disque dur de mon pc et installé Windows XP, Access
2003
et une base de données qui fonctionne depuis 3 ans sur le vieux DD qui a
laché.

Sur clic d’un formulaire de cette base de données j’envoi un Etat par
email.
Mais depuis que j’ai tout réinstallé sur le nouveau DD le CDO ne
fonctionne
plus (l’email n’arrive pas).

Sur le bouton du formulaire j’ai :

Private Sub CDO_Click()

DoCmd.OutputTo acOutputReport, "MonEtat", acFormatHTML, "C:MonEtat.htm"

SendMailCDO


Dans un Module :
Sub SendMailCDO()

On Error Resume Next

Dim Message As New CDO.Message
With Message
.To = ""
.Subject = "MonEtat"
.TextBody = "Bonne jounnée"
.AddAttachment ("C: MonEtat.htm")
.Send
End With
Set Message = Nothing

If Dir("C: MonEtat.htm") <> "" Then Kill "C: MonEtat.htm"

End Sub


Dans les références :
Microsoft CDO for Exchange 2000 librairy

Le chemin : C:Program FilesFichiers communsMicrosoft
SharedCDOcdoex.dll

J’ai enregistré la librairie pour être sûr : regsvr32 "C:Program
FilesFichiers communsMicrosoft SharedCDOcdoex.dll"

Est-ce que j’ai oublié quelque chose pour que cela fonctionne ?
J’ai enlevé le If Dir("C: MonEtat.htm") <> "" Then Kill "C: MonEtat.htm"
et “MonEtat.htm” se trouve bien sur le disque dur.
Si vous avez une idée ?
Merci pour tout.
Luis



Avatar
Luis
Bonjour,
Désolé pour ma réponse tardive.
Non ls configuration se trouve dans un module de la base de données.
D'ailleurs je viens d'essayer cette même base sur un vieux PC qui me sert
pour stocker les données et les emails partes avec ou sans configuration
(c'est-à-dire même si je supprime le module ModSMTP).
Le problème doit venir d'ailleurs.
Merci pour tout et si d'autres idées, je suis preneur.
Luis


Hello,
oui sauf erreur, je pense que tu as oublié de configurer le serveur SMTP
(courrier sortant )
----------------------------
Dim Cdo_Message As New CDO.Message
Set Cdo_Message.Configuration = GetSMTPServerConfig()
----------------------------
Function GetSMTPServerConfig() As Object
'prendre la configuration du serveur SMTP
Dim Cdo_Config As New CDO.Configuration
Dim Cdo_Fields As Object
Set Cdo_Fields = Cdo_Config.Fields
With Cdo_Fields
'le port est défini
.Item(cdoSendUsingMethod) = cdoSendUsingPort
'Définir le serveur (ServeurSmtpSociété contient le nom du
serveur
.Item(cdoSMTPServer) = ENTREZ ICI LE NOM DU SERVEUR
'effectue le changement
.Update
End With
Set GetSMTPServerConfig = Cdo_Config
Set Cdo_Config = Nothing
Set Cdo_Fields = Nothing
End Function
-----------------------------
Pascal



"Luis" a écrit dans le message de news:

J’ai du changer le disque dur de mon pc et installé Windows XP, Access
2003
et une base de données qui fonctionne depuis 3 ans sur le vieux DD qui a
laché.

Sur clic d’un formulaire de cette base de données j’envoi un Etat par
email.
Mais depuis que j’ai tout réinstallé sur le nouveau DD le CDO ne
fonctionne
plus (l’email n’arrive pas).

Sur le bouton du formulaire j’ai :

Private Sub CDO_Click()

DoCmd.OutputTo acOutputReport, "MonEtat", acFormatHTML, "C:MonEtat.htm"

SendMailCDO


Dans un Module :
Sub SendMailCDO()

On Error Resume Next

Dim Message As New CDO.Message
With Message
.To = ""
.Subject = "MonEtat"
.TextBody = "Bonne jounnée"
.AddAttachment ("C: MonEtat.htm")
.Send
End With
Set Message = Nothing

If Dir("C: MonEtat.htm") <> "" Then Kill "C: MonEtat.htm"

End Sub


Dans les références :
Microsoft CDO for Exchange 2000 librairy

Le chemin : C:Program FilesFichiers communsMicrosoft
SharedCDOcdoex.dll

J’ai enregistré la librairie pour être sûr : regsvr32 "C:Program
FilesFichiers communsMicrosoft SharedCDOcdoex.dll"

Est-ce que j’ai oublié quelque chose pour que cela fonctionne ?
J’ai enlevé le If Dir("C: MonEtat.htm") <> "" Then Kill "C: MonEtat.htm"
et “MonEtat.htm” se trouve bien sur le disque dur.
Si vous avez une idée ?
Merci pour tout.
Luis







Avatar
3stone
Salut,

"Luis"
| Non ls configuration se trouve dans un module de la base de données.
| D'ailleurs je viens d'essayer cette même base sur un vieux PC qui me sert
| pour stocker les données et les emails partes avec ou sans configuration
| (c'est-à-dire même si je supprime le module ModSMTP).
| Le problème doit venir d'ailleurs.


Tu peux essayer la méthode indiquée ici :
(serveur smtp par défaut non reconnu)
http://www.3stone.be/access/articles.php?lng=fr&pg‰" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.3stone.be/access/articles.php?lng=fr&pg‰

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
Luis
Bonjour Pierre,
J‘ai essayé les trois méthodes que tu préconise, c’est-à-dire :
1. Envoi de mails avec pièces jointes depuis VBA sous Win2000/XP, en
accédant à la couche MAPI via l'interface CDO (Collaboration Data Objects).
2. La méthode qui nous permet de nous affranchir de référencer la bibliothèque
3. La méthode qui nous permet d’evoyer le message si le serveur smtp par
défaut n'est pas reconnu (clients mail non Microsoft)
Rien ne fonctionne.
Je ne comprends pas ce qui se passe.
Merci pour tes idées de génie, si tu en a d'autres???
Luis



Salut,

"Luis"
| Non ls configuration se trouve dans un module de la base de données.
| D'ailleurs je viens d'essayer cette même base sur un vieux PC qui me sert
| pour stocker les données et les emails partes avec ou sans configuration
| (c'est-à-dire même si je supprime le module ModSMTP).
| Le problème doit venir d'ailleurs.


Tu peux essayer la méthode indiquée ici :
(serveur smtp par défaut non reconnu)
http://www.3stone.be/access/articles.php?lng=fr&pg‰" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.3stone.be/access/articles.php?lng=fr&pg‰

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)