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

Pb Envoi Mail Message Sécurité Outlook

12 réponses
Avatar
casa
Bonjour,

J'utilise le script suivant depuis 3 ans pour envoyer par mail mais je dois passer sous exchange et les tests se soldent par un message de sécurité outlook
Il faut que je trouve une solution : 50 mails à chaque envoi / 4fois par jour

Avez vous une solution pour ne pas avoir de message de sécurité Outlook.
J'ai vu la méthode CDO mais pouvez vous m'aider à convertir mon script

Je négocie en ce moment avec l'administrateur pour avoir une boite supplémentaire en SMTP

Merci de votre aide


Dim deb, fin As Integer
Dim RQ As String
Dim bds As Database
Dim rstdest, rstmail As Recordset
Dim Site, Requete, ObjetMail, ObjetNul, Sauvegarde As String
Dim ListeDest
DoCmd.SetWarnings False
Set bds = CurrentDb

Set rstmail = bds.OpenRecordset("SELECT * FROM TbMailListe WHERE TypeAlarme = 'Dest';")
rstmail.MoveFirst
While Not rstmail.EOF
Site = rstmail!Site
Requete = rstmail!Requete
ObjetMail = rstmail!ObjetMail
ObjetNul = rstmail!ObjetNul

Set rstdest = bds.OpenRecordset("SELECT [EMAIL] FROM TbMailDestinataires WHERE Site = '" & Site & "';")
ListeDest = ""
rstdest.MoveFirst
If Not rstdest.EOF Then
ListeDest = rstdest!EMAIL
rstdest.MoveNext
End If
While Not rstdest.EOF
ListeDest = ListeDest & ";" & rstdest!EMAIL
rstdest.MoveNext
Wend
rstdest.Close
If DCount("Dossier", Requete, "") > 0 Then

DoCmd.SendObject acSendQuery, Requete, acFormatXLS, ListeDest, , , ObjetMail, , False
Else
DoCmd.SendObject , , , ListeDest, , , ObjetNul, , False

End If

rstmail.MoveNext

Wend
rstmail.Close

Set bds = Nothing

--
casa

10 réponses

1 2
Avatar
Raymond [mvp]
Bonsoir.

à ma connaissance, le cdo n'est pas multi-destinataires ni multi-pièces.
je te conseille de visiter la page : http://www.logicielappui.com/tips/
Envois de courriel API (2004/06/04) *Nouveau*
Voici un utilitaire complet pour l'envois de courriel par Access, il
fonctionne de façon autonome avec l'API Winsock, donc il n'est dépendant d'
aucune messagerie, plus communément appeler « Silent mail », ont peut
demander une confirmation de lecture, une priorité du message et aussi la
gestion des fichiers attachés.

en ce qui concerne ta procédure, on peut l'améliorer comme ceci:
Dim deb As Integer
Dim fin As Integer
Dim RQ As String
Dim Bds As dao.Database
Dim Rstdest As dao.Recordset
Dim Rstmail As dao.Recordset
Dim Site As String
Dim Requete As String
Dim ObjetMail As String
Dim ObjetNul As String
Dim Sauvegarde As String
Dim ListeDest
DoCmd.SetWarnings False
Set Bds = CurrentDb
Set Rstmail = Bds.OpenRecordset("SELECT * FROM TbMailListe WHERE
TypeAlarme = 'Dest';")
If Rstmail.BOF Then
' ici fichier vide que faire ?
End If
Do Until Rstmail.EOF
Site = Rstmail!Site
Requete = Rstmail!Requete
ObjetMail = Rstmail!ObjetMail
ObjetNul = Rstmail!ObjetNul
Set Rstdest = Bds.OpenRecordset("SELECT [EMAIL] FROM
TbMailDestinataires WHERE Site = '" & Site & "';")
ListeDest = ""
If Rstdest.BOF Then
' ici fichier vide que faire ?
End If
Do Until Rstdest.EOF
ListeDest = ListeDest & ";" & Rstdest!EMAIL
Rstdest.MoveNext
Loop
Rstdest.Close
If DCount("Dossier", Requete) > 0 Then
DoCmd.SendObject acSendQuery, Requete, acFormatXLS, ListeDest, ,
, ObjetMail, , False
Else
DoCmd.SendObject , , , ListeDest, , , ObjetNul, , False
End If
Rstmail.MoveNext
Loop
Rstmail.Close
Set Bds = Nothing
Set Rstmail = Nothing
Set Rstdest = Nothing
DoCmd.SetWarnings True

Il faut l'adapter en remplaçant les sendobject par l'envoi indiqué
ci-dessus.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"casa" a écrit dans le message de
news:
Bonjour,

J'utilise le script suivant depuis 3 ans pour envoyer par mail mais je
dois passer sous exchange et les tests se soldent par un message de sécurité

outlook
Il faut que je trouve une solution : 50 mails à chaque envoi / 4fois par
jour


Avez vous une solution pour ne pas avoir de message de sécurité Outlook.
J'ai vu la méthode CDO mais pouvez vous m'aider à convertir mon script

Je négocie en ce moment avec l'administrateur pour avoir une boite
supplémentaire en SMTP


Merci de votre aide


Dim deb, fin As Integer
Dim RQ As String
Dim bds As Database
Dim rstdest, rstmail As Recordset
Dim Site, Requete, ObjetMail, ObjetNul, Sauvegarde As String
Dim ListeDest
DoCmd.SetWarnings False
Set bds = CurrentDb

Set rstmail = bds.OpenRecordset("SELECT * FROM TbMailListe WHERE
TypeAlarme = 'Dest';")

rstmail.MoveFirst
While Not rstmail.EOF
Site = rstmail!Site
Requete = rstmail!Requete
ObjetMail = rstmail!ObjetMail
ObjetNul = rstmail!ObjetNul

Set rstdest = bds.OpenRecordset("SELECT [EMAIL] FROM
TbMailDestinataires WHERE Site = '" & Site & "';")

ListeDest = ""
rstdest.MoveFirst
If Not rstdest.EOF Then
ListeDest = rstdest!EMAIL
rstdest.MoveNext
End If
While Not rstdest.EOF
ListeDest = ListeDest & ";" & rstdest!EMAIL
rstdest.MoveNext
Wend
rstdest.Close
If DCount("Dossier", Requete, "") > 0 Then

DoCmd.SendObject acSendQuery, Requete, acFormatXLS, ListeDest, , ,
ObjetMail, , False

Else
DoCmd.SendObject , , , ListeDest, , , ObjetNul, , False

End If

rstmail.MoveNext

Wend
rstmail.Close

Set bds = Nothing

--
casa


Avatar
Arnaud [lwa]
Bonjour Raymond [mvp],

| Bonsoir.
|
| à ma connaissance, le cdo n'est pas multi-destinataires ni
| multi-pièces.


CDO est parfaitement multi-destinataires en séparant les destinataires par un point-virgule :
.To = ";"


Pour les fichiers, il suffit de répéter :
.AddAttachment ("c:config.sys")
.AddAttachment ("c:fichier.txt")

Donc soit le code suivant fonctionne :

Sub SendMailCDO()
'Déclaration précoce ("Early Binding")
'Cocher la référence à Microsoft CDO for Exchange 2000 librairy
' ou Microsoft CDO for Windows 2000 librairy
Dim Message As New cdo.Message
With Message
.To = ""
.Subject = "sujet du mail"
.TextBody = "Le corps du message"
.AddAttachment ("c:cheminfichier.ext")
.Send
End With
Set Message = Nothing
End Sub

Soit il ne fonctionne pas et il faudra dire ce qui cloche
ou s'aider du lien suivant :
http://memoaccess.free.fr/outlook.htm#SendMailCDO


--
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Site Perso : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------
Avatar
Raymond [mvp]
Bonsoir Arnaud.

Il serait bon de le marquer dans la procédure pour la prochaine fois. En
général j'aiguille toujours vers cette page mais là je n'étais pas sûr que
les deux soient multi. C'est bien noté pour moi.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Arnaud [lwa]" <http://memoaccess.free.fr/anor/email.htm> a écrit dans le
message de news:%
Bonjour Raymond [mvp],

| Bonsoir.
|
| à ma connaissance, le cdo n'est pas multi-destinataires ni
| multi-pièces.


CDO est parfaitement multi-destinataires en séparant les destinataires par
un point-virgule :

.To = ";"


Pour les fichiers, il suffit de répéter :
.AddAttachment ("c:config.sys")
.AddAttachment ("c:fichier.txt")

Donc soit le code suivant fonctionne :

Sub SendMailCDO()
'Déclaration précoce ("Early Binding")
'Cocher la référence à Microsoft CDO for Exchange 2000 librairy
' ou Microsoft CDO for Windows 2000 librairy
Dim Message As New cdo.Message
With Message
.To = ""
.Subject = "sujet du mail"
.TextBody = "Le corps du message"
.AddAttachment ("c:cheminfichier.ext")
.Send
End With
Set Message = Nothing
End Sub

Soit il ne fonctionne pas et il faudra dire ce qui cloche
ou s'aider du lien suivant :
http://memoaccess.free.fr/outlook.htm#SendMailCDO


--
Arnaud


Avatar
casa
Bonjour Raymond,

merci encore pour votre aide,
quelle référence cochée sur Access 97 tournant sur NT4 pour activer la fonction CDO.
Concerant la base avec la fonction API prévu pour access XP, peut-elle fonctionner sur Access 2000 ou 97 ?
casa



Bonsoir Arnaud.

Il serait bon de le marquer dans la procédure pour la prochaine fois. En
général j'aiguille toujours vers cette page mais là je n'étais pas sûr que
les deux soient multi. C'est bien noté pour moi.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Arnaud [lwa]" <http://memoaccess.free.fr/anor/email.htm> a écrit dans le
message de news:%
Bonjour Raymond [mvp],

| Bonsoir.
|
| à ma connaissance, le cdo n'est pas multi-destinataires ni
| multi-pièces.


CDO est parfaitement multi-destinataires en séparant les destinataires par
un point-virgule :

.To = ";"


Pour les fichiers, il suffit de répéter :
.AddAttachment ("c:config.sys")
.AddAttachment ("c:fichier.txt")

Donc soit le code suivant fonctionne :

Sub SendMailCDO()
'Déclaration précoce ("Early Binding")
'Cocher la référence à Microsoft CDO for Exchange 2000 librairy
' ou Microsoft CDO for Windows 2000 librairy
Dim Message As New cdo.Message
With Message
.To = ""
.Subject = "sujet du mail"
.TextBody = "Le corps du message"
.AddAttachment ("c:cheminfichier.ext")
.Send
End With
Set Message = Nothing
End Sub

Soit il ne fonctionne pas et il faudra dire ce qui cloche
ou s'aider du lien suivant :
http://memoaccess.free.fr/outlook.htm#SendMailCDO


--
Arnaud







Avatar
Raymond [mvp]
Bonjour.

je ne peux pas tester sur NT4, néanmoins Arnaud précise:
"On peut s'affranchir de référencer la bibliothèque avec la syntaxe suivante
"
Relis bien les commentaires d'Arnaud sur la page :
http://memoaccess.free.fr/outlook.htm#SendMailCDO
Il passera certainement dans la journée, il te confirmera.
en général les api tournent sur 97 à 2003 en appel direct, sauf si les
appels aux api comportent des compléments spécifiques 2000 ou 2002 ou 2003
(voir ce cas sur : http://access.seneque.free.fr/ouverture_document.htm qui
ne fonctionne que sur 2000&+)
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"casa" a écrit dans le message de
news:
Bonjour Raymond,

merci encore pour votre aide,
quelle référence cochée sur Access 97 tournant sur NT4 pour activer la
fonction CDO.

Concerant la base avec la fonction API prévu pour access XP, peut-elle
fonctionner sur Access 2000 ou 97 ?

casa


Avatar
Arnaud [lwa]
Bonjour casa,

le problème de cdo, c'est la portabilité et sous NT4, c'était cdo.dll il me semble
(le code pour cdo 1.21 est beaucoup plus compliqué car très lié à mapi)

tu as un message d'alerte avec la méthode standard automation sous NT4 ?
Quelle version de Outlook utilises tu dans ce cas ?

--
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Site Perso : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------

| Bonjour Raymond,
|
| merci encore pour votre aide,
| quelle référence cochée sur Access 97 tournant sur NT4 pour activer
| la fonction CDO.
| Concerant la base avec la fonction API prévu pour access XP,
| peut-elle fonctionner sur Access 2000 ou 97 ? casa
|
|
|
|| Bonsoir Arnaud.
||
|| Il serait bon de le marquer dans la procédure pour la prochaine
|| fois. En général j'aiguille toujours vers cette page mais là je
|| n'étais pas sûr que les deux soient multi. C'est bien noté pour moi.
||
|| --
|| @+
|| Raymond Access MVP
|| http://access.seneque.free.fr/
|| http://access.vba.free.fr/
|| http://access2003.free.fr/
|| http://users.skynet.be/mpfa/ pour débuter sur le forum
||
||
|| "Arnaud [lwa]" <http://memoaccess.free.fr/anor/email.htm> a écrit
|| dans le message de news:%
||| Bonjour Raymond [mvp],
|||
||| Dans sa missive, Raymond [mvp] a
|||| Bonsoir.
||||
|||| à ma connaissance, le cdo n'est pas multi-destinataires ni
|||| multi-pièces.
|||
|||
||| CDO est parfaitement multi-destinataires en séparant les
||| destinataires par
|| un point-virgule :
||| .To = ";"
|||
|||
||| Pour les fichiers, il suffit de répéter :
||| .AddAttachment ("c:config.sys")
||| .AddAttachment ("c:fichier.txt")
|||
||| Donc soit le code suivant fonctionne :
|||
||| Sub SendMailCDO()
||| 'Déclaration précoce ("Early Binding")
||| 'Cocher la référence à Microsoft CDO for Exchange 2000 librairy
||| ' ou Microsoft CDO for Windows 2000 librairy
||| Dim Message As New cdo.Message
||| With Message
||| .To = ""
||| .Subject = "sujet du mail"
||| .TextBody = "Le corps du message"
||| .AddAttachment ("c:cheminfichier.ext")
||| .Send
||| End With
||| Set Message = Nothing
||| End Sub
|||
||| Soit il ne fonctionne pas et il faudra dire ce qui cloche
||| ou s'aider du lien suivant :
||| http://memoaccess.free.fr/outlook.htm#SendMailCDO
|||
|||
||| --
||| Arnaud
Avatar
casa
Bonjour Arnaud,

j'utilise Outlook 2000 avec les SP installés.
S'agissant du boulot, nous avons des postes en NT4 et
d'autres en XP Pro.

Nous avons le message dans les 2 cas en utilisant la
commande Docmd.SendObject comme indiqué dans mon premier
message. (Bien sur, en utilisant Netscape Messenger pas de
message sécurité)
Sinon, j'ai pratiquement terminé la conversion en CDO pour
les postes XP avec ObjetMail différent selon présence
pièce jointe et multidestinataire. Merci Encore
Y-a t'il une possibilité de faire apparaitre ces mails
dans le répertoire Eléments envoyés d'outlook et d'avoir
un accusé de réception.

Désolé de toutes ces questions, nous avons appris notre
migration sur XP + Office2003 pro pour début septembre.
j'ai environ 10 bases à convertir mais surtout à faire
fonctionner.
Casa
-----Message d'origine-----
Bonjour casa,

le problème de cdo, c'est la portabilité et sous NT4,
c'était cdo.dll il me semble

(le code pour cdo 1.21 est beaucoup plus compliqué car
très lié à mapi)


tu as un message d'alerte avec la méthode standard
automation sous NT4 ?

Quelle version de Outlook utilises tu dans ce cas ?

--
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Site Perso : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------

Dans sa missive, casa a
| Bonjour Raymond,
|
| merci encore pour votre aide,
| quelle référence cochée sur Access 97 tournant sur NT4
pour activer

| la fonction CDO.
| Concerant la base avec la fonction API prévu pour
access XP,

| peut-elle fonctionner sur Access 2000 ou 97 ? casa
|
|
|
|| Bonsoir Arnaud.
||
|| Il serait bon de le marquer dans la procédure pour la
prochaine

|| fois. En général j'aiguille toujours vers cette page
mais là je

|| n'étais pas sûr que les deux soient multi. C'est bien
noté pour moi.

||
|| --
|| @+
|| Raymond Access MVP
|| http://access.seneque.free.fr/
|| http://access.vba.free.fr/
|| http://access2003.free.fr/
|| http://users.skynet.be/mpfa/ pour débuter sur le forum
||
||
|| "Arnaud [lwa]"
<http://memoaccess.free.fr/anor/email.htm> a écrit

|| dans le message de news:%


||| Bonjour Raymond [mvp],
|||
||| Dans sa missive, Raymond [mvp]
a

|||| Bonsoir.
||||
|||| à ma connaissance, le cdo n'est pas multi-
destinataires ni

|||| multi-pièces.
|||
|||
||| CDO est parfaitement multi-destinataires en séparant
les

||| destinataires par
|| un point-virgule :
||| .To = ";"
|||
|||
||| Pour les fichiers, il suffit de répéter :
||| .AddAttachment ("c:config.sys")
||| .AddAttachment ("c:fichier.txt")
|||
||| Donc soit le code suivant fonctionne :
|||
||| Sub SendMailCDO()
||| 'Déclaration précoce ("Early Binding")
||| 'Cocher la référence à Microsoft CDO for Exchange
2000 librairy

||| ' ou Microsoft CDO for Windows 2000
librairy

||| Dim Message As New cdo.Message
||| With Message
||| .To = ""
||| .Subject = "sujet du mail"
||| .TextBody = "Le corps du message"
||| .AddAttachment ("c:cheminfichier.ext")
||| .Send
||| End With
||| Set Message = Nothing
||| End Sub
|||
||| Soit il ne fonctionne pas et il faudra dire ce qui
cloche

||| ou s'aider du lien suivant :
||| http://memoaccess.free.fr/outlook.htm#SendMailCDO
|||
|||
||| --
||| Arnaud


.



Avatar
Arnaud [lwa]
Bonjour casa,


| Y-a t'il une possibilité de faire apparaitre ces mails
| dans le répertoire Eléments envoyés d'outlook et d'avoir
| un accusé de réception.

probablement oui mais tu risques voir apparaître un message d'alerte :-(
Je n'ai pas réussi à le faire avec cdo for exchange 2000 librairy
ou cdo for microsoft windows 2000 librairy
(cdoex.dll ou cdosys.dll)

Par contre, avec la "vieille" bibliothèque cdo.dll, si tu l'as sur ton disque dur
et dans les références à cocher, tu peux peut-être essayer de bidouiller.

Voici un bout de code pour bien commencer avec cdo 1.21
(je n'ai rien testé)
Tu vas voir qu'il est bien plus complexe que les autres....;-))
http://groups.google.fr/groups?hl=fr&lr=&ie=UTF-8&selm=OIaQB23VEHA.2564%40TK2MSFTNGP11.phx.gbl

à+
--
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Site Perso : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------
Avatar
casa
Bonjour Arnaud,

Pour avoir un accusé de lecture des messages (ReadReceipt ?), as-tu
une solution en CDO .
Merci d'avance,
A+
--
casa



Bonjour casa,


| Y-a t'il une possibilité de faire apparaitre ces mails
| dans le répertoire Eléments envoyés d'outlook et d'avoir
| un accusé de réception.

probablement oui mais tu risques voir apparaître un message d'alerte :-(
Je n'ai pas réussi à le faire avec cdo for exchange 2000 librairy
ou cdo for microsoft windows 2000 librairy
(cdoex.dll ou cdosys.dll)

Par contre, avec la "vieille" bibliothèque cdo.dll, si tu l'as sur ton disque dur
et dans les références à cocher, tu peux peut-être essayer de bidouiller.

Voici un bout de code pour bien commencer avec cdo 1.21
(je n'ai rien testé)
Tu vas voir qu'il est bien plus complexe que les autres....;-))
http://groups.google.fr/groups?hl=fr&lr=&ie=UTF-8&selm=OIaQB23VEHA.2564%40TK2MSFTNGP11.phx.gbl

à+
--
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Site Perso : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------







Avatar
Arnaud [lwa]
Bonjour casa,

non, mais regarde ici :
http://www.mvps.org/access/modules/mdl0019.htm
et aussi le post suivant
http://groups.google.fr/groups?hl=fr&lr=&ie=UTF-8&selmÂe1064b.0201240728.8a4f8ab%40posting.google.com

à+
--
Arnaud
--------------------------------------------------
Conseils d'utilisation : http://users.skynet.be/mpfa/
Site Perso : http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------

| Bonjour Arnaud,
|
| Pour avoir un accusé de lecture des messages (ReadReceipt ?), as-tu
| une solution en CDO .
| Merci d'avance,
| A+
|

non.
1 2