Envoie d'email avec VB
Résolu
snoopy5.0
-
antoine9298 Messages postés 101 Date d'inscription Statut Membre Dernière intervention -
antoine9298 Messages postés 101 Date d'inscription Statut Membre Dernière intervention -
Je souhaiterais pouvoir envoyer un email automatique à partir d'une application VB. La seule solution que j'ai trouvée est d'utiliser MAPI. Seulement je n'arrive pas à m'en servir... Deplus je ne trouve aucun endroit ou l'on spécifie l'adresse du serveur pop3!!!
Est-ce que dueldu'un peut me detailler la procédure à suivre ou mieux encore m'indiquer une autre solution que MAPI.
Merci d'avance
Est-ce que dueldu'un peut me detailler la procédure à suivre ou mieux encore m'indiquer une autre solution que MAPI.
Merci d'avance
A voir également:
- Envoie d'email avec VB
- Comment creer un compte email - Guide
- Vb - Télécharger - Langages
- Facebook piraté et adresse email changé - Guide
- Vb cable - Télécharger - Audio & Musique
- Créer un compte email gratuit hotmail - Guide
34 réponses
Bonjour,
Exemple type sous VB6 :
Cet exemple utilise Outlook Express même si celui-ci n'est pas congiguré.
La configuration est effectué dans le code !
Les valeurs suivantes doivent être remplacer par des valeurs valides.
[ smtp.serveur.net ]
[ monadresse@monserveur.net ]
[ destinataire@serveur.net ]
Lupin
Exemple type sous VB6 :
Cet exemple utilise Outlook Express même si celui-ci n'est pas congiguré.
La configuration est effectué dans le code !
Les valeurs suivantes doivent être remplacer par des valeurs valides.
[ smtp.serveur.net ]
[ monadresse@monserveur.net ]
[ destinataire@serveur.net ]
Option Explicit ' 'Déclaration de constantes Const PourLecture = 1 Const cteAdresseSource = "monadresse@monserveur.net" Private Sub cmd_Click(Index As Integer) If (Index > 0) Then ' Déclaration de variables Dim objMail As Object Dim sDestination As String Dim sPieceJointe As String Dim msgTitre As String Dim msgTexte As String Dim Drapeau As Boolean Set objMail = CreateObject("CDO.Message") Drapeau = False sDestination = "destinataire@serveur.net" msgTitre = "Automatisme" msgTexte = "Bonjour," & vbLf & "Corps du message" sPieceJointe = "D:\Monfichier.txt" Drapeau = True With objMail ' Ligne à modifier selon l'adresse de l'envoyeur .From = cteAdresseSource .To = sDestination .Subject = msgTitre ' Ligne à modifier selon le texte voulu ! If (sPieceJointe <> "") Then If (Drapeau = True) Then .TextBody = msgTexte & vbLf & LirePieceJointe(sPieceJointe) & vbLf Else .TextBody = msgTexte & vbLf & "Pièce jointe incluse : " & vbLf End If Else .TextBody = msgTexte & vbCrLf & "Aucune Pièce jointe" & vbCrLf End If ' Ligne à modifier selon l'adresse du serveur SMTP .Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.serveur.net" .Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 .Configuration.Fields.Update If ((sPieceJointe <> "") And (Drapeau = False)) Then objMail.AddAttachment (sPieceJointe) End If .Send End With Set objMail = Nothing MsgBox "Courriel envoyé !" Else Unload Me End If End Sub ' Function LirePieceJointe(LeFichier) Dim objFSO, CeFichier Set objFSO = CreateObject("Scripting.FileSystemObject") If (objFSO.FileExists(LeFichier)) Then Set CeFichier = objFSO.OpenTextFile(LeFichier, PourLecture) LirePieceJointe = CeFichier.ReadAll CeFichier.Close Set CeFichier = Nothing End If Set objFSO = Nothing End Function '
Lupin
J'ai un petit prog qui permet d'envoyer les mail que g dévellopez sous vb5.
Laisse ton E mail et je t'envois les sources sans probleme.
Je ne fais que d'envoyer des mail et je ne m'occupê absolument pas du pop3 qui permet de recuperer les mails pour la lecture.
Laisse ton E mail et je t'envois les sources sans probleme.
Je ne fais que d'envoyer des mail et je ne m'occupê absolument pas du pop3 qui permet de recuperer les mails pour la lecture.
Bonjour,
Voila le code que j'ai repris et remodifier
Sub Outlook()
'********************************************************************************
'La fonction sert a envoyer un mail via excel en définissant tous les attribut
'********************************************************************************
Dim OLF As Outlook.MAPIFolder, olMailItem As Outlook.MailItem
' MESsages = MSG11 & MSG12 & MSG13 & MSG14
Set OLF = GetObject("", "Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
Set olMailItem = OLF.Items.Add
'******************************************************
'Avec la fonciton MailItem défini par olMailItem
'Subject = objet du mail
'.to = destinataire du mail
'.cc = copie du mail
'.bcc = copie caché du mail
'******************************************************
With olMailItem
.Subject = "Fichier rejets RESERVEA"
'.To = "xx@xx"
'.To = "xx@xx"
'.To = "xx@xx"
.CC = "xx@xx"
.Body = "Ci-joint le fichier des rejets RESERVEA complété à J-1"
.Attachments.Add "c:\xx.xls" ' & SOCiete & "" & Nomvar, olByValue, , "C:\Documents and Settings\X074310\Bureau\Image0001.JPG"
.OriginatorDeliveryReportRequested = False
.ReadReceiptRequested = False
.Send
End With
Set ToContact = Nothing
Set olMailItem = Nothing
Set OLF = Nothing
End Sub
Voila le code que j'ai repris et remodifier
Sub Outlook()
'********************************************************************************
'La fonction sert a envoyer un mail via excel en définissant tous les attribut
'********************************************************************************
Dim OLF As Outlook.MAPIFolder, olMailItem As Outlook.MailItem
' MESsages = MSG11 & MSG12 & MSG13 & MSG14
Set OLF = GetObject("", "Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
Set olMailItem = OLF.Items.Add
'******************************************************
'Avec la fonciton MailItem défini par olMailItem
'Subject = objet du mail
'.to = destinataire du mail
'.cc = copie du mail
'.bcc = copie caché du mail
'******************************************************
With olMailItem
.Subject = "Fichier rejets RESERVEA"
'.To = "xx@xx"
'.To = "xx@xx"
'.To = "xx@xx"
.CC = "xx@xx"
.Body = "Ci-joint le fichier des rejets RESERVEA complété à J-1"
.Attachments.Add "c:\xx.xls" ' & SOCiete & "" & Nomvar, olByValue, , "C:\Documents and Settings\X074310\Bureau\Image0001.JPG"
.OriginatorDeliveryReportRequested = False
.ReadReceiptRequested = False
.Send
End With
Set ToContact = Nothing
Set olMailItem = Nothing
Set OLF = Nothing
End Sub
Salut,
Je serais aussi interessé pour avoir le code source.
Si tu peux me l'envoyer ca serait cool.
Merci d'avance
Je serais aussi interessé pour avoir le code source.
Si tu peux me l'envoyer ca serait cool.
Merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai un code pour vous ;-)
Déjà vous êtes obligés de passer par le PHP (ça ouvre une fenêtre puis la referme quoi ^^).
Bon voyons déjà le code VB :
Ici l'adresse internet est la vôtre avec votre futur code PHP ;-)
Maintenant nous allons le créer celui ci ^^.
Voilà enregistrez ça en vbmail.php et ça marche ^^
Déjà vous êtes obligés de passer par le PHP (ça ouvre une fenêtre puis la referme quoi ^^).
Bon voyons déjà le code VB :
Dim mailto As String Dim mailfrom As String Dim mailtitre As String Dim mailcorps As String Dim mailreq As String Sub envoyer() mailto = "to=" & TextTo.Text mailfrom = "from=From:" & TextFrom.Text mailtitre = "titre=" & TextTitre.Text mailcorps = Replace(TextCorps.Text, Chr$(10), "\n" mailcorps = "corps=" & mailcorps mailreq = "http://domaine.tld/vbmail.php?" & mailto & "&" & mailfrom & "&" & mailtitre & "&" & mailcorps Shell ("c://WINDOWS/iexplore.exe " & mailreq) End Sub
Ici l'adresse internet est la vôtre avec votre futur code PHP ;-)
Maintenant nous allons le créer celui ci ^^.
<html> <BODY onLoad=""setTimeout(window.close, 1000)""> <?php mail($_GET[mailto], $_GET[mailtitre], $_GET[mailcorps], $_GET[mailfrom]); ?> </BODY> </html>
Voilà enregistrez ça en vbmail.php et ça marche ^^
pour gagner du temps,vu que toutes ces variables sont du type String,
au lieu de:
Dim mailto As String
Dim mailfrom As String
Dim mailtitre As String
Dim mailcorps As String
Dim mailreq As String
tu met
Dim mailto, mailfrom, mailtitre, mailcorps, mailreq As String
sa ira plus vite comme ça.Et c'est tout aussi clair.
mais tu as quand meme oublié dans ton code la vérification que le serveur réponde a la requete.aussi je te poste mon code qui est certes un peu plus long mais permet la vérification sans pour autant qu'il y ait un message qui le dise,en "silencieux".Le voici, il vient du site codes-sources:
Dim Account,Serveur
Set ObjReg = CreateObject("Wscript.shell")
Account = ObjReg.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Internet Account Manager\Default Mail Account")
Serveur = Objreg.RegRead ("HKEY_CURRENT_USER\Software\Microsoft\Internet Account Manager\Accounts\" & Account & "\SMTP Server")
Mail "Moi@haha.fr","Toi@haha.fr","Moi","Toi","haha","coucou",Serveur
Sub Mail(MailFrom,MailTo,NomFrom,NomTo,Sujet,Msg,Serveur)
Dim StrData
StrData = ""
set Wck = CreateObject("MSWinsock.Winsock")
Wck.connect Serveur , 25
Do While (wck.state <> 7)
wscript.sleep(200)
Loop
do until Left(StrData,3) = "220"
Wscript.sleep(200)
wck.getdata StrData
loop
StrData = ""
Wck.SendData "HELLO Serveur" & vbCrLf
do until Left(StrData,3) = "250"
Wscript.sleep(200)
Wck.getdata StrData
loop
StrData = ""
Wck.SendData "MAIL FROM: <" & MailFrom & ">" & vbCrLf
do until Left(StrData,3) = "250"
wscript.sleep(200)
Wck.getdata StrData
loop
StrData = ""
Wck.SendData "RCPT TO: <"& MailTo &">" & vbCrLf
do until Left(StrData,3) = "250"
wscript.sleep(200)
Wck.getdata StrData
loop
StrData = ""
Wck.SendData "DATA" & vbCrLf
do until Left(StrData,3) = "354"
wscript.sleep(200)
wck.getdata StrData
loop
StrData = ""
Wck.SendData "From: " & Chr(34) & NomFrom & Chr(34) & " " & "<" & MailFrom & ">" & vbCrLf
Wck.SendData "To: " & Chr(34) & NomTo & Chr(34) & " " & "<" & MailTo & ">" & vbCrLf
Wck.SendData "Subject: " & Sujet & vbCrLf & vbCrLf
' attention,il faut inclure les reponses!! c est a dire le "." est le message.a vous de rajouter eventuellement
' une variable de texte comme ça: dim votretexte as string
Wck.SendData Msg & vbCrLf & "." & vbCrLf
do until Left(StrData,3) = "250"
wscript.sleep(200)
Wck.getdata StrData
loop
StrData = ""
Wck.SendData "QUIT"
Wck.close
End Sub
au lieu de:
Dim mailto As String
Dim mailfrom As String
Dim mailtitre As String
Dim mailcorps As String
Dim mailreq As String
tu met
Dim mailto, mailfrom, mailtitre, mailcorps, mailreq As String
sa ira plus vite comme ça.Et c'est tout aussi clair.
mais tu as quand meme oublié dans ton code la vérification que le serveur réponde a la requete.aussi je te poste mon code qui est certes un peu plus long mais permet la vérification sans pour autant qu'il y ait un message qui le dise,en "silencieux".Le voici, il vient du site codes-sources:
Dim Account,Serveur
Set ObjReg = CreateObject("Wscript.shell")
Account = ObjReg.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Internet Account Manager\Default Mail Account")
Serveur = Objreg.RegRead ("HKEY_CURRENT_USER\Software\Microsoft\Internet Account Manager\Accounts\" & Account & "\SMTP Server")
Mail "Moi@haha.fr","Toi@haha.fr","Moi","Toi","haha","coucou",Serveur
Sub Mail(MailFrom,MailTo,NomFrom,NomTo,Sujet,Msg,Serveur)
Dim StrData
StrData = ""
set Wck = CreateObject("MSWinsock.Winsock")
Wck.connect Serveur , 25
Do While (wck.state <> 7)
wscript.sleep(200)
Loop
do until Left(StrData,3) = "220"
Wscript.sleep(200)
wck.getdata StrData
loop
StrData = ""
Wck.SendData "HELLO Serveur" & vbCrLf
do until Left(StrData,3) = "250"
Wscript.sleep(200)
Wck.getdata StrData
loop
StrData = ""
Wck.SendData "MAIL FROM: <" & MailFrom & ">" & vbCrLf
do until Left(StrData,3) = "250"
wscript.sleep(200)
Wck.getdata StrData
loop
StrData = ""
Wck.SendData "RCPT TO: <"& MailTo &">" & vbCrLf
do until Left(StrData,3) = "250"
wscript.sleep(200)
Wck.getdata StrData
loop
StrData = ""
Wck.SendData "DATA" & vbCrLf
do until Left(StrData,3) = "354"
wscript.sleep(200)
wck.getdata StrData
loop
StrData = ""
Wck.SendData "From: " & Chr(34) & NomFrom & Chr(34) & " " & "<" & MailFrom & ">" & vbCrLf
Wck.SendData "To: " & Chr(34) & NomTo & Chr(34) & " " & "<" & MailTo & ">" & vbCrLf
Wck.SendData "Subject: " & Sujet & vbCrLf & vbCrLf
' attention,il faut inclure les reponses!! c est a dire le "." est le message.a vous de rajouter eventuellement
' une variable de texte comme ça: dim votretexte as string
Wck.SendData Msg & vbCrLf & "." & vbCrLf
do until Left(StrData,3) = "250"
wscript.sleep(200)
Wck.getdata StrData
loop
StrData = ""
Wck.SendData "QUIT"
Wck.close
End Sub
J'essaye de réaliser une application qui permet d'envoyer des mails et j'aimerais beaucoup que vous m'envoyez le code source svp
Merci beaucoup
Merci beaucoup
Salut, j'aimerais aussi que tu m'envoies le code source et aussi l'exécutable à olinadeau@hotmail.com.
J'aimerais également avoir ce code pour envoi de mail sur un poste utilisant Office-Outlook.
Merci d'avance.
guyc64@hotmail.com
Merci d'avance.
guyc64@hotmail.com
svp des sites ki contients des exercices en transact sql j`arrive pas a touver sur google si vs lavez deja trouve` envoi moi les url et merci
salut pouvez vous m'envoyer le code pour pouvoir envoyer des messages en VB sil vous plait merci d'avans
Bonjour,
voila moi aussi interesse de voir votre votre code source et surtout sans l utilisation de smtp
voila mon adress de msn
et je serai tres contente si vous me propose votre code source
rababe20@hotmail.com
voila moi aussi interesse de voir votre votre code source et surtout sans l utilisation de smtp
voila mon adress de msn
et je serai tres contente si vous me propose votre code source
rababe20@hotmail.com
Je me suis fié à ce bout de Code (celui de Lupin.A) pour une petite application cette avant-midi.
Elle sera tester par le tech chez le client en aprem, je vais voir si ça à fonctionner.
Je vous tiens au courant.
Elle sera tester par le tech chez le client en aprem, je vais voir si ça à fonctionner.
Je vous tiens au courant.
Bonjour,
je me suis servi du dernier code posté ici et il me sert bien ;) Merci!
Par contre j'aimerai attacher plusieurs fichiers-joints sur un même mail. La méthode AddAttachment, tel qu'elle est utilisée ici, peut le faire? ou peut être qu'il y a un index à mettre en place? j'ai pas trouvé d'info là dessus. un petit coup de main?
Merci d'avance :)
je me suis servi du dernier code posté ici et il me sert bien ;) Merci!
Par contre j'aimerai attacher plusieurs fichiers-joints sur un même mail. La méthode AddAttachment, tel qu'elle est utilisée ici, peut le faire? ou peut être qu'il y a un index à mettre en place? j'ai pas trouvé d'info là dessus. un petit coup de main?
Merci d'avance :)
slt, j'ai le code en vb pour l'envoi des aisl automatiquement mais le proibleme si que je veu joindre le contenu d'un document word comme corps message donc est ce qu'il y paersonne qui ma'ide et je l'aide dans une autre chose s'i veut surtout en c++
n'hestitez pas a me contacter tchao2007@HOTMAIL.FR
n'hestitez pas a me contacter tchao2007@HOTMAIL.FR
re:
Bien content que cela serve :-)
Le première ligne ne sert qu'a renseigné le script (le programme) pour savoir
ou envoyer le courriel. Il est nécessaire d'avoir une passerelle SMTP pour
envoyer du courriel.
Comme dans ton logiciel de courriel, tu dois lui indiquer qui est ton FAI.
À moins que tu installe toi-même un service SMTP sur ton système.
Le paramètre [2] spécifie d'utiliser le port courant [ SMTP = port 25 ].
Tu trouveras tous les détails ici :
https://docs.microsoft.com/en-us/previous-versions/office/developer/exchange-server-2003/ms870485(v=exchg.65)?redirectedfrom=MSDN
Mais aucun danger, d'inspection, de surveillance, etc ...
Ceci dit, ce sont les espions qui entrent dans les machines qui font
ce genre de trouble.
Lupin
Bien content que cela serve :-)
Le première ligne ne sert qu'a renseigné le script (le programme) pour savoir
ou envoyer le courriel. Il est nécessaire d'avoir une passerelle SMTP pour
envoyer du courriel.
Comme dans ton logiciel de courriel, tu dois lui indiquer qui est ton FAI.
À moins que tu installe toi-même un service SMTP sur ton système.
Le paramètre [2] spécifie d'utiliser le port courant [ SMTP = port 25 ].
Tu trouveras tous les détails ici :
https://docs.microsoft.com/en-us/previous-versions/office/developer/exchange-server-2003/ms870485(v=exchg.65)?redirectedfrom=MSDN
Mais aucun danger, d'inspection, de surveillance, etc ...
Ceci dit, ce sont les espions qui entrent dans les machines qui font
ce genre de trouble.
Lupin
Voilà, j'ai tenté de rajouter des commentaires sur chaque instruction
Lupin
ca vfonctionne à merveille en local ici. Toutefois, peux-tu ou quelququ'un pourrait-il m'en dis d'avantage sur le schema que nous appelons :
.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "relais.videotron.ca"
.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Configuration.Fields.Update
à quoi ca sert exactement. J'envois de mon ordi ici , via mon smtp de mon FAI videotron.
à quoi ca sert la ligne 1, et la ligne duex, avec cette option 2? Mes envois seront ils inspecté, classés, bref l'appel de ce schéma sera-t-il inventorié chez microsoft?
Une quesiton bête faut le dire, mais j'aimerais en être certain.
merci à l'avance.
Je me suis trompé ai j'ai envoyé ma réponse en fin de fil :-(
Quoi qu'il en soit, tu trouveras la réponse en fin de fil !
C'est à l'origine un script VBS qui permet de signaler des évènements
ou de rafraichir un journal automatique :-)
Je l'ai fabriqué pour m'envoyer mon @IP par courriel, puisque comme
toi, je n'ai pas une @IP fixe !
Mon frére et ma mère sont chez vidéotron et il ont ou avait ( il y a quand même
2 ans que je suis descendu à Sherbrooke) une ip fixe.
@+
Lupin
je voudrais savoir si tu pourrais me dire comment faire pour envoyer des mil avec VB 2008 et les recevoir ( il faudrait qu'il s'affiche dans une listBox et pour les ecrirent il faudrait pouvoir les ecrirent dans une textBox
merci d'avance