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

SendMail CDO (Site 3stone)

4 réponses
Avatar
Gilbert
Bonjour,

Je souhaite envoyé 1500 mails en automatique à partir des adresses mails
d'une BDD.

Mes recherches m'ont amenées à passer par le site 3Stone (Site très très
intérressant d'ailleurs).

J'ai essayé SendMail (MAPI) qui fonctionne très bien mais dont le soucis
majeur est effectivement "le message de sécurité d'Outlook signalant qu'une
application tente d'envoyer un message à notre place" et ce pour chaque mail
(répondre "oui" pour les 1500 mails avec l'attente à chaque fois de
plusieurs secondes entre chaque mail ça va faire un peu long).

J'ai donc essayer "SendMail CDO" qui est sensé ne pas avoir cette
inconvénient.

Mais malheureusement j'ai une erreur sur la ligne .send

Je suis sur : Serveur 2003 - Exchange 2000 et des postes clients : Win XP
Pro SP2 - Office XP Pro 2000.

La programmation que j'ai mise en place est la même que celle décrite sur le
site avec quelques aménagement à mon cas (voir ci-dessous).

Les références Microsoft CDO 1.21 library et CDO for exchange 2000 library
sont cochées.

Je ne trouve pas mon erreur (mais je suis un amateur autodidact en
programmation alors......).

Si quelqu'un avait une idée ou une autre solution pour arriver au même
résultats.....

Merci

Gilbert

Private Sub CmdEnvoiGroup_Click()

'Création d'une table temporaire "TblClientsTmp" à partir d'une table
"Clients"

Dim StrSqlcrea As String

StrSqlcrea = "" & _

"SELECT Clients.index,Clients.INI, Clients.EMail, Clients.MailEnvoyé
,Clients.[Envoi Immédiat] INTO " & _

"TblClientsTmp FROM Clients WHERE (((Clients.Email)<>'') AND
((Clients.[Envoi Immédiat])=-1)); "

DoCmd.RunSQL StrSqlcrea

Dim rst1 As New ADODB.Recordset

rst1.ActiveConnection = CurrentProject.Connection

rst1.Open "TblClientsTmp", , adOpenKeyset, adLockOptimistic

Dim txtTo As String

Dim TxtSubject As String

Dim FichierAttaché As String

Dim CorpsMessage As String

TxtSubject = "Essai d'envoi de mail automatique"

' FichierAttaché = Me!TxtAttachedFiles.Value '(non utilisé pour l'instant)

CorpsMessage = Me!TxtMessage.Value

Do Until rst1.EOF

txtTo = rst1.Fields("Email") TOUT CA CA MARCHE AVEC SENDMAIL (MAPI)


Dim Message As New CDO.Message

With Message

.To = txtTo

.Subject = TxtSubject

.TextBody = CorpsMessage

' .AddAttachment (FichierAttaché) 'Non utilisé pour l'instant

.Send (ERREUR ICI)

End With


rst1.Fields("MailEnvoyé") = True 'Permet de repérer dans la table temporaire
les mails déjà envoyés en cas d'arrêt intempestif

rst1.Update

rst1.MoveNext

Set Message = Nothing

Loop

rst1.Close

Set rst1 = Nothing

End Sub

4 réponses

Avatar
3stone
Salut,

"Gilbert"
| J'ai essayé SendMail (MAPI) qui fonctionne très bien mais dont le soucis
| majeur est effectivement "le message de sécurité d'Outlook signalant qu'une
| application tente d'envoyer un message à notre place" et ce pour chaque mail
| (répondre "oui" pour les 1500 mails avec l'attente à chaque fois de
| plusieurs secondes entre chaque mail ça va faire un peu long).
|
| J'ai donc essayer "SendMail CDO" qui est sensé ne pas avoir cette
| inconvénient.
|
| Mais malheureusement j'ai une erreur sur la ligne .send
|
| Je suis sur : Serveur 2003 - Exchange 2000 et des postes clients : Win XP
| Pro SP2 - Office XP Pro 2000.
|
| La programmation que j'ai mise en place est la même que celle décrite sur le
| site avec quelques aménagement à mon cas (voir ci-dessous).
|
| Les références Microsoft CDO 1.21 library et CDO for exchange 2000 library
| sont cochées.
|
| Je ne trouve pas mon erreur (mais je suis un amateur autodidact en
| programmation alors......).
|
| Si quelqu'un avait une idée ou une autre solution pour arriver au même
| résultats.....


Il est dit :

'Cocher la référence à Microsoft CDO for Exchange 2000 librairy
' ou Microsoft CDO for Windows 2000 librairy

et cela fonctionne parfaitement !


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

essaye de décocher la ref à CDO 1.21
Sinon, tu peux aussi mémoriser la réponse faite au message de sécurité pour
une période variable entre quelques minutes et quelques heures, non ?

--
A+
Arnaud
-----------------------------------------------------
Tout ce qu'il faut savoir est sur http://www.mpfa.info
-----------------------------------------------------

"Gilbert" <[nospam] a écrit dans le message de
news:dlvf87$pp6$
Bonjour,

Je souhaite envoyé 1500 mails en automatique à partir des adresses mails
d'une BDD.

Mes recherches m'ont amenées à passer par le site 3Stone (Site très très
intérressant d'ailleurs).

J'ai essayé SendMail (MAPI) qui fonctionne très bien mais dont le soucis
majeur est effectivement "le message de sécurité d'Outlook signalant
qu'une

application tente d'envoyer un message à notre place" et ce pour chaque
mail

(répondre "oui" pour les 1500 mails avec l'attente à chaque fois de
plusieurs secondes entre chaque mail ça va faire un peu long).

J'ai donc essayer "SendMail CDO" qui est sensé ne pas avoir cette
inconvénient.

Mais malheureusement j'ai une erreur sur la ligne .send

Je suis sur : Serveur 2003 - Exchange 2000 et des postes clients : Win XP
Pro SP2 - Office XP Pro 2000.

La programmation que j'ai mise en place est la même que celle décrite sur
le

site avec quelques aménagement à mon cas (voir ci-dessous).

Les références Microsoft CDO 1.21 library et CDO for exchange 2000 library
sont cochées.

Je ne trouve pas mon erreur (mais je suis un amateur autodidact en
programmation alors......).

Si quelqu'un avait une idée ou une autre solution pour arriver au même
résultats.....

Merci

Gilbert

Private Sub CmdEnvoiGroup_Click()

'Création d'une table temporaire "TblClientsTmp" à partir d'une table
"Clients"

Dim StrSqlcrea As String

StrSqlcrea = "" & _

"SELECT Clients.index,Clients.INI, Clients.EMail, Clients.MailEnvoyé
,Clients.[Envoi Immédiat] INTO " & _

"TblClientsTmp FROM Clients WHERE (((Clients.Email)<>'') AND
((Clients.[Envoi Immédiat])=-1)); "

DoCmd.RunSQL StrSqlcrea

Dim rst1 As New ADODB.Recordset

rst1.ActiveConnection = CurrentProject.Connection

rst1.Open "TblClientsTmp", , adOpenKeyset, adLockOptimistic

Dim txtTo As String

Dim TxtSubject As String

Dim FichierAttaché As String

Dim CorpsMessage As String

TxtSubject = "Essai d'envoi de mail automatique"

' FichierAttaché = Me!TxtAttachedFiles.Value '(non utilisé pour l'instant)

CorpsMessage = Me!TxtMessage.Value

Do Until rst1.EOF

txtTo = rst1.Fields("Email") TOUT CA CA MARCHE AVEC SENDMAIL (MAPI)


Dim Message As New CDO.Message

With Message

.To = txtTo

.Subject = TxtSubject

.TextBody = CorpsMessage

' .AddAttachment (FichierAttaché) 'Non utilisé pour l'instant

.Send (ERREUR ICI)

End With


rst1.Fields("MailEnvoyé") = True 'Permet de repérer dans la table
temporaire

les mails déjà envoyés en cas d'arrêt intempestif

rst1.Update

rst1.MoveNext

Set Message = Nothing

Loop

rst1.Close

Set rst1 = Nothing

End Sub




Avatar
Gilbert
Bonsoir,
Merci pour ta réponse très rapide

Après un test voici ce que j'obtiens :
Avec : la référence Microsoft CDO for Exchange 2000 library uniquement j'ai
même message d'erreur arrêt sur la ligne .send.

et avec : Microsoft CDO 1.21 library uniquement j'ai message : type défini
par l'utilisateur non défini sur la ligne -Dim Message As New CDO.Message

:-(

Si tu as une petite idée moi je sèche complètement trop fort pour moi.

Gilbert


"3stone" a écrit dans le message de news:

Salut,

"Gilbert"
| J'ai essayé SendMail (MAPI) qui fonctionne très bien mais dont le soucis
| majeur est effectivement "le message de sécurité d'Outlook signalant
qu'une
| application tente d'envoyer un message à notre place" et ce pour chaque
mail
| (répondre "oui" pour les 1500 mails avec l'attente à chaque fois de
| plusieurs secondes entre chaque mail ça va faire un peu long).
|
| J'ai donc essayer "SendMail CDO" qui est sensé ne pas avoir cette
| inconvénient.
|
| Mais malheureusement j'ai une erreur sur la ligne .send
|
| Je suis sur : Serveur 2003 - Exchange 2000 et des postes clients : Win
XP
| Pro SP2 - Office XP Pro 2000.
|
| La programmation que j'ai mise en place est la même que celle décrite
sur le
| site avec quelques aménagement à mon cas (voir ci-dessous).
|
| Les références Microsoft CDO 1.21 library et CDO for exchange 2000
library
| sont cochées.
|
| Je ne trouve pas mon erreur (mais je suis un amateur autodidact en
| programmation alors......).
|
| Si quelqu'un avait une idée ou une autre solution pour arriver au même
| résultats.....


Il est dit :

'Cocher la référence à Microsoft CDO for Exchange 2000 librairy
' ou Microsoft CDO for Windows 2000 librairy

et cela fonctionne parfaitement !


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



Avatar
Gilbert
Bonsoir,
Ah, oui j'avais pas pensé à cela c'est tout c..
j'essaie.

Merci
Gilbert

<Anor> a écrit dans le message de news:

Bonjour

essaye de décocher la ref à CDO 1.21
Sinon, tu peux aussi mémoriser la réponse faite au message de sécurité
pour
une période variable entre quelques minutes et quelques heures, non ?

--
A+
Arnaud
-----------------------------------------------------
Tout ce qu'il faut savoir est sur http://www.mpfa.info
-----------------------------------------------------

"Gilbert" <[nospam] a écrit dans le message de
news:dlvf87$pp6$
Bonjour,

Je souhaite envoyé 1500 mails en automatique à partir des adresses mails
d'une BDD.

Mes recherches m'ont amenées à passer par le site 3Stone (Site très très
intérressant d'ailleurs).

J'ai essayé SendMail (MAPI) qui fonctionne très bien mais dont le soucis
majeur est effectivement "le message de sécurité d'Outlook signalant
qu'une

application tente d'envoyer un message à notre place" et ce pour chaque
mail

(répondre "oui" pour les 1500 mails avec l'attente à chaque fois de
plusieurs secondes entre chaque mail ça va faire un peu long).

J'ai donc essayer "SendMail CDO" qui est sensé ne pas avoir cette
inconvénient.

Mais malheureusement j'ai une erreur sur la ligne .send

Je suis sur : Serveur 2003 - Exchange 2000 et des postes clients : Win XP
Pro SP2 - Office XP Pro 2000.

La programmation que j'ai mise en place est la même que celle décrite sur
le

site avec quelques aménagement à mon cas (voir ci-dessous).

Les références Microsoft CDO 1.21 library et CDO for exchange 2000
library
sont cochées.

Je ne trouve pas mon erreur (mais je suis un amateur autodidact en
programmation alors......).

Si quelqu'un avait une idée ou une autre solution pour arriver au même
résultats.....

Merci

Gilbert

Private Sub CmdEnvoiGroup_Click()

'Création d'une table temporaire "TblClientsTmp" à partir d'une table
"Clients"

Dim StrSqlcrea As String

StrSqlcrea = "" & _

"SELECT Clients.index,Clients.INI, Clients.EMail, Clients.MailEnvoyé
,Clients.[Envoi Immédiat] INTO " & _

"TblClientsTmp FROM Clients WHERE (((Clients.Email)<>'') AND
((Clients.[Envoi Immédiat])=-1)); "

DoCmd.RunSQL StrSqlcrea

Dim rst1 As New ADODB.Recordset

rst1.ActiveConnection = CurrentProject.Connection

rst1.Open "TblClientsTmp", , adOpenKeyset, adLockOptimistic

Dim txtTo As String

Dim TxtSubject As String

Dim FichierAttaché As String

Dim CorpsMessage As String

TxtSubject = "Essai d'envoi de mail automatique"

' FichierAttaché = Me!TxtAttachedFiles.Value '(non utilisé pour
l'instant)

CorpsMessage = Me!TxtMessage.Value

Do Until rst1.EOF

txtTo = rst1.Fields("Email") TOUT CA CA MARCHE AVEC SENDMAIL (MAPI)


Dim Message As New CDO.Message

With Message

.To = txtTo

.Subject = TxtSubject

.TextBody = CorpsMessage

' .AddAttachment (FichierAttaché) 'Non utilisé pour l'instant

.Send (ERREUR ICI)

End With


rst1.Fields("MailEnvoyé") = True 'Permet de repérer dans la table
temporaire

les mails déjà envoyés en cas d'arrêt intempestif

rst1.Update

rst1.MoveNext

Set Message = Nothing

Loop

rst1.Close

Set rst1 = Nothing

End Sub