VBA envoi mail sans API ni programme externe

Fermé
djmagnen Messages postés 4 Date d'inscription mercredi 29 avril 2009 Statut Membre Dernière intervention 30 avril 2009 - 29 avril 2009 à 16:18
 Utilisateur anonyme - 30 avril 2009 à 17:47
Bonjour,
je cherche à programmer la possibilité pour l'utilisateur de mon programme de me contacter par mail. L'utilisateur doit cliquer suir un bouton de commande et le code doit se lancer. Quel est le code? Le problème est que les APIs que j'ai testés ne fonctionnent pas correctement sur les ordinateurs publics (pas d'Outlook, etc., seulement un client Novell). Un autre problème est que le programme doit être capable d'envoyer un mail sans devoir ouvrir un autre programme externe.

Merci
A voir également:

7 réponses

Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
30 avril 2009 à 15:45
http://blogs.harvard.edu/scaldwel/2006/07/17/socket-programming-in-vba/

le smtp: smtp.gmail.com

https://fr.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol#Syntaxe_type_d.27une_session_SMTP
-> en vert, c'est ce que ton programme doit envoyer
attention, chaque ligne doit finir par \r\n (code asci 10 et 13, à vérifier)
pour faire tes tests, utilises le smtp de ta connexion internet

sinon, j'ai une autre solution, mais il faut un serveur web (un compte gratuit chez free peut suffire), qui utilise aussi les socket...le protocole HTTP

suivant la taille des donénes à envoyer, une seule ligne serait à envoyer au serveur:

par exmple, tu veux envoyer ces données:
temperature=25
pression=1000
ph=4
...
tu aurai une requete comme celle ci a envoyer au serveur:

GET /traitement.php?temperature=25&pression=1000&ph=4 HTTP/1.1\r\n

et ensuite, tu aurai une page traitement.php sur ton serveur, qui traiterait les données, et au besoin peut les enregistrer dans la base de données, et t'envoyer un email .....

quelle est la quantité de données à envoyer? si la ligne fait moins de 255 charactères, alors ce serait le plus simple (et super pour le traitement des données).
si la ligne est plus longue, ce serait un peu plus compliqué, mais peut etre moins que smtp.. et tu aurai les possibilités d'archivage sur le site, et de traitement automatisé, et d'envoi de mails
2
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
29 avril 2009 à 16:22
il va falloir coder le protocole smtp toi meme alors (les info necessaires sont sur wikipedia smtp)
je l'aui deja fait en c++, c'est bateau. le seul problème, c'est qu'il faut connaite le serveur smtp... a la limite, tu peux utiliser celui de gmail: tu crées un compte spécialement pour l'envoi de mails
1
djmagnen Messages postés 4 Date d'inscription mercredi 29 avril 2009 Statut Membre Dernière intervention 30 avril 2009
30 avril 2009 à 15:21
Merci de ta réponse. Mais je ne suis vraiment pas très doué là-dedans. Je suis spécialisé dans la chimie et mon programme est un visualisateur de molécules de gaz en mouvement (et qui fonctionne). Je suis allé voir sur wikipédia SMTP, mais je ne sais pas quelles infos sont importantes pour moi. Donc, si je pars sur ce que tu m'as dit, j'ai créé une adresse gmail qui sera utilisée pour envoyer des mails (xyz@gmail.com (par exemple, je ne donne pas la vrai adresse)). Mon code VBA pour le moment est celui-là:

' (Ici commence le code qui s'active lorsqu'on clique sur le bouton appelé cmdenvoimail)
Private Sub cmdenvoimail_Click()
' (Ici devrait se trouver le code qui permet d'envoyer un mail)
' (Ici finit le code qui envoie un mail (à ce moment, le mail doit être envoyé sur mon adresse avec les coordonnées de l'utilisateur et le texte qu'il a écrit (C'est un envoi de mail destiné à me contacter au sujet du programme VBA que j'ai créé. Il y a un bouton supplémentaire dans mon programme pour me contacter)))
End sub

Ou alors:
Je crée un nouveau formulaire qui s'ouvre lors du click sur le bouton de commande cmdenvoimail. Dans ce formulaire, je demande à l'utilisateur d'entrer ses données et son texte (ou avec des Inputbox?). Quand j'ai les données prêtes à être envoyées (ce n'est pas le problème), comment les envoyer via le mail créé sur gmail et le serveur smtp? Merci
0
Utilisateur anonyme
30 avril 2009 à 15:47
Bonjour,

J'ai codé et utilisé le code fournit ici :
http://www.commentcamarche.net/forum/affich 953055 envoie d email avec vb?#51

sur un serveur ayant Windows 2003 serveur comme OS.

W2k, W2k3 et WXP ont de façon native Outlook Express, et même sans configurer
celui-ci, le code fournit fonctionne très bien.

Bonne continuité.

Lupin
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
30 avril 2009 à 15:50
Ici "smtp.serveur.net" doit correspondre à votre FAI
es ce que tu gères l'authentification (nécesaire avec gmail je croi)
0
Utilisateur anonyme
30 avril 2009 à 15:58
re:

Pas dans le code proposé, mais c'est possible.

Voir MSDN [ .Configuration.Fields ]

Lupin
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
30 avril 2009 à 16:00
ca marche aussi en VBA ?
0
Utilisateur anonyme > Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014
30 avril 2009 à 17:47
oui


VB, VBA, VBS

Lupin
0
djmagnen Messages postés 4 Date d'inscription mercredi 29 avril 2009 Statut Membre Dernière intervention 30 avril 2009
30 avril 2009 à 16:56
Je ne comprends pas grand chose à tout ça, mais je pense que je pourrais me débrouiller avec votre aide et mon prof d'info. Merci pour les liens et pour le reste. Le contact par mail doit juste envoyer un court texte (corps du message)(défini par l'utilisateur) et les coordonnées de l'utilisateur. (Il n'y a pas de données genre pression, ph ou température à envoyer))

Mon but est aussi de rester simple. Si c'est plus simple d'avoir moins de 255 caractères, alors faisons comme ça... Les problèmes que je rencontre sont surtout une incompréhension du monde informatique; par exemple:

chaque ligne doit finir par \r\n (code asci 10 et 13, à vérifier) (Quels lignes? Toutes?)
pour faire tes tests, utilises le smtp de ta connexion internet (ça a l'air simple comme ça, mais on fait comment?)
requête à envoyer au serveur (comment? pourquoi? etc.)

Comme tu le vois, j'ai beaucoup de peine, j'arrive à peine à faire des calculs, à ouvrir et fermer des formulaires, à lancer l'application internet explorer sur un site web choisi, à faire apparaître des msgbox ou des inputbox, et je maîtrise les

If ... Then
else
End if

For ... To ...
Next

Et je connais aussi les do loop until etc. sans les maîtriser. Voilà ma situation... Alors svp pas de termes trop techniques ni de raccourcis genre "Il n'y a qu'à coder le protocole smtp". Merci

PS: Je ne doute pas que vous m'ayez fourni toutes les infos utiles, mais si vous pouviez me les traduire en français (avec commentaires et explications, ce serait cool)
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
30 avril 2009 à 17:01
pour les \r\n, c'est pour les protocoles http et SMTP

l'autre solution d'envoi de mails qui t'a été proposée permet d'envoyer des mails de la taille que tu veux
0