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

Send mail et références

7 réponses
Avatar
Francis SLAWNY
Bonsoir à tous



XPSP Pro3, ACCESS 2003 SP3


Afin de pouvoir envoyer un message électronique depuis une base access,
j'utilise
ceci (pris sur le web)

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
.From = 'mettre une adresse électronique

.To = 'mettre une adresse électronique
.Subject = "sujet du mail"
.TextBody = "Le corps du message"
.GetStream.SaveToFile "C:\MonMail.txt", adSaveCreateOverWrite
.Send
End With
Set Message = Nothing

EndSub


Sur une machine ça marche très bien : j'ai coché Microsoft CDO for Windows
2000 librairy
Sur lune autre machine j'ai un message d'erreur à l'execution sur le Send
final.
Sur cette machine c'est Microsoft CDO for Exchange 2000 librairy qui est
coché.
Je voudrais modifier sur cette machine et ajouter la référence à Microsoft
CDO for Windows 2000 librairy qui correspond au fichier cdosys.dll.
Mais apres avoir fait parcourir dans les références et pointé le cdosys.dll
recopié depuis la machine où tout marchait, je ne trouve pas la référence à
Microsoft CDO for Windows 2000 librairy.

Quelqu'un aurait-il une solution ?
Merci d'avance.
FS

7 réponses

Avatar
Denis
Le Sat, 24 Oct 2009 19:14:23 +0200, Francis SLAWNY a écrit :

Bonsoir à tous



XPSP Pro3, ACCESS 2003 SP3


Afin de pouvoir envoyer un message électronique depuis une base access,
j'utilise
ceci (pris sur le web)

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
.From = 'mettre une adresse électronique

.To = 'mettre une adresse électronique .Subject = "sujet du
mail"
.TextBody = "Le corps du message"
.GetStream.SaveToFile "C:MonMail.txt", adSaveCreateOverWrite
.Send
End With
Set Message = Nothing

EndSub


Sur une machine ça marche très bien : j'ai coché Microsoft CDO for
Windows 2000 librairy
Sur lune autre machine j'ai un message d'erreur à l'execution sur le
Send final.
Sur cette machine c'est Microsoft CDO for Exchange 2000 librairy qui
est coché.
Je voudrais modifier sur cette machine et ajouter la référence à
Microsoft CDO for Windows 2000 librairy qui correspond au fichier
cdosys.dll. Mais apres avoir fait parcourir dans les références et
pointé le cdosys.dll recopié depuis la machine où tout marchait, je ne
trouve pas la référence à Microsoft CDO for Windows 2000 librairy.

Quelqu'un aurait-il une solution ?
Merci d'avance.
FS



Salut Francis,

Bon, c'est pas pour me faire de la pub :) (surtout que ça ne me rapporte
rien), mais as-tu jeté un coup d'oeil à ma signature ?
Peut-être que ça peut faire l'affaire. Et c'est justement conçu pour
éliminer au maximum tous les problèmes de références, étant écrit en pur
VBA.



--
Envoyer des mails depuis Access, avec ou sans pièce jointe ?
http://www.self-access.com/cms/access/assistants/libmail
-----
Les chiffres dans mon adresse sont de trop.
Avatar
Blaise Cacramp
Selon : Bonjour ou bonsoir


"Denis" a écrit dans le message de news:
hc3kr1$ccc$
Le Sat, 24 Oct 2009 19:14:23 +0200, Francis SLAWNY a écrit :

Bonsoir à tous



XPSP Pro3, ACCESS 2003 SP3


Afin de pouvoir envoyer un message électronique depuis une base access,
j'utilise




...
FS



Salut Francis,

Bon, c'est pas pour me faire de la pub :) (surtout que ça ne me rapporte
rien), mais as-tu jeté un coup d'oeil à ma signature ?
Peut-être que ça peut faire l'affaire. Et c'est justement conçu pour
éliminer au maximum tous les problèmes de références, étant écrit en pur
VBA.



--
Envoyer des mails depuis Access, avec ou sans pièce jointe ?
http://www.self-access.com/cms/access/assistants/libmail
-----
Les chiffres dans mon adresse sont de trop.



Oui pas mal !
J'ai pas regardé le code, cela fonctionne aussi avec le smtp de gmail ?
(port, sécurité)

Mais pour la gratuité, c'est un produit d'appel parce qu'ailleurs, j'ai vu
des appels au don via Paypal ...


Cdt, Blaise
---- ---- ----
Avatar
Denis
Le Mon, 26 Oct 2009 18:59:45 +0100, Blaise Cacramp a écrit :

Selon : Bonjour ou bonsoir


"Denis" a écrit dans le message de news:
hc3kr1$ccc$
Le Sat, 24 Oct 2009 19:14:23 +0200, Francis SLAWNY a écrit :

Bonsoir à tous



XPSP Pro3, ACCESS 2003 SP3


Afin de pouvoir envoyer un message électronique depuis une base
access, j'utilise




...
FS



Salut Francis,

Bon, c'est pas pour me faire de la pub :) (surtout que ça ne me
rapporte rien), mais as-tu jeté un coup d'oeil à ma signature ?
Peut-être que ça peut faire l'affaire. Et c'est justement conçu pour
éliminer au maximum tous les problèmes de références, étant écrit en
pur VBA.



--
Envoyer des mails depuis Access, avec ou sans pièce jointe ?
http://www.self-access.com/cms/access/assistants/libmail -----
Les chiffres dans mon adresse sont de trop.



Oui pas mal !
J'ai pas regardé le code, cela fonctionne aussi avec le smtp de gmail ?
(port, sécurité)

Mais pour la gratuité, c'est un produit d'appel parce qu'ailleurs, j'ai
vu des appels au don via Paypal ...


Cdt, Blaise
---- ---- ----



Salut Blaise,

Merci d'avoir jeté un œil :)

Je n'ai pas de compte gmail, donc je ne sais pas s'il y a des
particularités. Peux-tu m'en dire plus sur ce point (éventuellement par
mail, histoire de ne pas trop polluer la liste ;))

Actuellement, la connexion se fait classiquement sur le port 25, mais si
le SMTP de gmail utilise un port différent, c'est peut-être une extension
intéressante à ajouter.

Côté sécurité, je gère pour le moment les authentifications LOGIN et
PLAIN. CRAM-MD5 est dans la liste des choses à faire :)


--
Envoyer des mails depuis Access, avec ou sans pièce jointe ?
http://www.self-access.com/cms/access/assistants/libmail
-----
Les chiffres dans mon adresse sont de trop.
Avatar
Denis
Le Wed, 28 Oct 2009 19:46:49 +0100, Blaise Cacramp a écrit :

Selon : Bonjour ou bonsoir

Merci aussi de t'intéresser à mon post. Je crois que la discussion peut
être publique car elle servira à tout le monde.

Alors prenons mon exemple.

Perso, je suis chez skynet.be qui interdit d'utiliser le port 25
ailleurs que chez eux (par exemple 'laposte.net'). Il faut alors
utiliser des petites ruses qui ne sont pas à la portée de monsieur et
madame tout le monde, c'est à dire envoyer par Skynet.be en spécifiant
l'adresse laposte.net comme retour. Et cela fonctionne. Par contre
Gmail utilise le port 465 en SMTP (et 995 en POP3) mais requiert une
authentification (simplement le login du pop)
http://www.cijoint.fr/cjlink.php?file=cj200910/cijWqRIltM.png copie
d'écrans OE

C'est pas non plus à la portée de monsieur et madame tout le monde, mais
ils ont (ou avaient) un script qui automatise cela.

Et voilà !

Cdt, Blaise
---- ---- ----




Salut Blaise,

J'ai fait une première modif pour permettre l'utilisation de ports 'non
standard'.
Ensuite, j'ai fait quelques essais rapides pour voir ce que le serveur
smtp.gmail.com peut accepter comme authentification : a peu près tout,
mais a priori ni PLAIN, ni LOGIN :(.
Je vais continuer mes tests, mais d'après ce que j'ai pu voir, le serveur
gmail demande également une connexion sécurisée (SSL).
Je te tiens au courant de la progression des recherches :)

Denis

--
Envoyer des mails depuis Access, avec ou sans pièce jointe ?
http://www.self-access.com/cms/access/assistants/libmail
-----
Les chiffres dans mon adresse sont de trop.
Avatar
Francis SLAWNY
Après une période d'absence je reviens vers ma machine et trouve des
réponses. Merci à tous.
Je vais essayer maintenant de les mettre en application.
Salut à tous
FS

"Francis SLAWNY" a écrit dans le message de
news:
Bonsoir à tous



XPSP Pro3, ACCESS 2003 SP3


Afin de pouvoir envoyer un message électronique depuis une base access,
j'utilise
ceci (pris sur le web)

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
.From = 'mettre une adresse électronique

.To = 'mettre une adresse électronique
.Subject = "sujet du mail"
.TextBody = "Le corps du message"
.GetStream.SaveToFile "C:MonMail.txt", adSaveCreateOverWrite
.Send
End With
Set Message = Nothing

EndSub


Sur une machine ça marche très bien : j'ai coché Microsoft CDO for Windows
2000 librairy
Sur lune autre machine j'ai un message d'erreur à l'execution sur le Send
final.
Sur cette machine c'est Microsoft CDO for Exchange 2000 librairy qui est
coché.
Je voudrais modifier sur cette machine et ajouter la référence à Microsoft
CDO for Windows 2000 librairy qui correspond au fichier cdosys.dll.
Mais apres avoir fait parcourir dans les références et pointé le
cdosys.dll recopié depuis la machine où tout marchait, je ne trouve pas la
référence à Microsoft CDO for Windows 2000 librairy.

Quelqu'un aurait-il une solution ?
Merci d'avance.
FS







Avatar
Denis
Le Wed, 28 Oct 2009 19:46:49 +0100, Blaise Cacramp a écrit :

Selon : Bonjour ou bonsoir

Merci aussi de t'intéresser à mon post. Je crois que la discussion peut
être publique car elle servira à tout le monde.

Alors prenons mon exemple.

Perso, je suis chez skynet.be qui interdit d'utiliser le port 25
ailleurs que chez eux (par exemple 'laposte.net'). Il faut alors
utiliser des petites ruses qui ne sont pas à la portée de monsieur et
madame tout le monde, c'est à dire envoyer par Skynet.be en spécifiant
l'adresse laposte.net comme retour. Et cela fonctionne. Par contre
Gmail utilise le port 465 en SMTP (et 995 en POP3) mais requiert une
authentification (simplement le login du pop)
http://www.cijoint.fr/cjlink.php?file=cj200910/cijWqRIltM.png copie
d'écrans OE

C'est pas non plus à la portée de monsieur et madame tout le monde, mais
ils ont (ou avaient) un script qui automatise cela.

Et voilà !

Cdt, Blaise
---- ---- ----




Salut Blaise,

J'ai fait quelques essais supplémentaires avec gmail. Résultats
mitigés :-/

Connexion sur le port 465 : aucune réponse du serveur. Je ne sais pas ce
qu'il attend.

Connexion sur le port 587 : là, j'ai une réponse normale au EHLO. Le
serveur accepte la connexion, mais me jette assez vite car il nécessite
l'utilisation du chiffrement TLS (anciennement SSL).
J'ai donc, de ce pas, jeté un œil à la RFC répondant au doux numéro de
2246. Mais bon, c'est plutôt velu :)

En conclusion, et pour répondre à ta question initiale : pour le moment,
libMAIL ne peut pas se connecter à un serveur gmail pour l'envoi.

Il me reste donc deux possibilités :

1. trouver une bibliothèque ou une API TLS. Mais je veux limiter autant
que possible les dépendances de la bibliothèque (une API Windows, OK, une
DLL supplémentaire, je ne suis pas très chaud).

2. implémenter moi-même la RFC-2246, directement en VBA. Je pense que ce
doit être faisable, mais ça risque de demander pas mal de temps... denrée
un peu rare en ce moment.

À suivre...

Question subsidiaire : pourquoi passer par GMail ? Skynet impose des
limitations ?


--
Envoyer des mails depuis Access, avec ou sans pièce jointe ?
http://www.self-access.com/cms/access/assistants/libmail
-----
Les chiffres dans mon adresse sont de trop.
Avatar
Denis
Le Mon, 09 Nov 2009 21:32:19 +0100, Blaise Cacramp a écrit :

Selon : Bonjour ou bonsoir

Question subsidiaire : pourquoi passer par GMail ? Skynet impose des
limitations ?



Oui. je ne sais plus trop, mais le port SMTP classique n'est utilisable
que pour une adresse Skynet () avec une IP Skynet.

Autrement dit, il n'est pas possible, par exemple, d'utiliser le SMTP
classique de "laposte.net" quand on est chez Skynet. Par contre, les
ports de Gmail fonctionnent sans problème...


Bon courrage ;-)

Blaise



--
Envoyer des mails depuis Access, avec ou sans pièce jointe ?
http://www.self-access.com/cms/access/assistants/libmail -----
Les chiffres dans mon adresse sont de trop.





Salut Blaise,

Oui, tout ça est fait pour embêter au maximum les spammeurs, en les
empêchant d'utiliser un serveur de manière anonyme. La plupart des
fournisseurs d'accès procèdent de la sorte. Si le poste émetteur est
connu sur leur réseau, il peut utiliser leur serveur SMTP sans plus de
complications, sinon, il se fait jeter.
De nos jours, les relais SMTP 'ouverts' sont devenus très rares.

Google n'étant pas un FAI, l'accès direct à leur serveur SMTP passe par
une authentification nettement plus poussée, c'est normal.

Dès que j'aurai stabilisé les modifications en cours, j'essaierai de
m'attaquer à TLS...

Bonne journée,

Denis


--
Envoyer des mails depuis Access, avec ou sans pièce jointe ?
http://www.self-access.com/cms/access/assistants/libmail
-----
Les chiffres dans mon adresse sont de trop.