poitierjohan
Messages postés50Date d'inscriptionsamedi 25 septembre 2004StatutMembreDernière intervention14 juillet 2008
-
6 janv. 2006 à 00:46
borntoclimb
Messages postés98Date d'inscriptionvendredi 4 janvier 2002StatutMembreDernière intervention 7 mars 2006
-
19 janv. 2006 à 14:43
Bonsoir,
Je voudrais faire en sorte que mon programme envoye automatiquement un mail...
Jusque là, pas de problème...
Maintenant, je voudrais que ce mail soit envoyé comme si je l'envoyais à partir du site en question (ex. hotmail pour une adresse [mailto:xxx@hotmail.com xxx@hotmail.com] comme expéditeur).
C'est-à-dire, l'envoyer à partir de mon programme SANS que l'envoi du mail passe par un programme comme Outlook, IncrediMail, ...
Est-ce possible?
Merci...
borntoclimb
Messages postés98Date d'inscriptionvendredi 4 janvier 2002StatutMembreDernière intervention 7 mars 20064 6 janv. 2006 à 10:03
Oui c'est possible et assez facile. Il faut utiliser les composants CDO que tu reference dans ton projet (Microsoft CDO for Windows 2000 library).
Ensuite:
'---------------------------------------------------------------------------------------
' Procedure : SendEmail
' DateTime : 25/02/2005 11:33
' Author : Mlavedrine
' Purpose : Function that builds a CDO message and sends it
'---------------------------------------------------------------------------------------
'
Private Function SendEmail(sTo As String, sFrom As String, sSender As String, sSubject As String, strCCEmailAddress As String, _
strBCCEmailAddress As String, Optional SMTP_SERVER As String) As Boolean
Dim CdoMailConfiguration As CDO.Configuration
Dim CdoMailMessage As CDO.Message
Dim CdoMailFields
Dim strHTMLBody As String
Dim strTextBody As String
On Error GoTo Err_SendEmail
' Create a new CDO message.
Set CdoMailMessage = New CDO.Message
'--------------------------------------------------------------------------------------------------------
'---------- When the following is not set it just uses the local CDO component, No SMTP required-----
' Create a new Configuration object.
' Set CdoMailConfiguration = New CDO.Configuration
' Get a reference to the Configuration object's Fields collection
' Set CdoMailFields = CdoMailConfiguration.Fields
' Set the Configuration object's properties through the Fields collection.
'
' With CdoMailFields
' .Item(cdoSMTPServer) = SMTP_SERVER
' .Item(cdoSendUsingMethod) = cdoSendUsingPort
' .Item(cdoSMTPServerPort) = 25
' .Item(cdoSMTPAuthenticate) = cdoAnonymous ' 0
' .Update ' Apply the above settings
' End With
'
' Set the message's configuration.
' Set CdoMailMessage.Configuration = CdoMailConfiguration
'--------------------------------------------------------------------------------------------------------
' Assign the HTML Body Of the message
' strTempHTTPFilePath is the path of the HTML file containing the body of the document.
' The advantage of doing it that way is that it automatically embed images in the message
CdoMailMessage.CreateMHTMLBody strTempHTTPFilePath
' Set the subject
CdoMailMessage.Subject = sSubject
' Set a default Text. Not necessary as already defaulted to the text of HTMLbody
' CdoMailMessage.TextBody = strTextBody
' CdoMailMessage.Sender = sSender
' The message can actually be sent as anyone
CdoMailMessage.From = sFrom
CdoMailMessage.To = sTo
CdoMailMessage.CC = strCCEmailAddress
CdoMailMessage.BCC = strBCCEmailAddress
' strAttachmentPath is the path of the Attachement
Call CdoMailMessage.AddAttachment(strAttachmentPath)
' Send the message.
CdoMailMessage.Send
Exit_SendEmail:
'Clear up
Set CdoMailMessage = Nothing
Set CdoMailConfiguration = Nothing
Set CdoMailFields = Nothing
SendEmail = True
Exit Function
Err_SendEmail:
SendEmail = False
strErrMessage = strErrMessage + "Error in function SendMail:" + Err.Description + vbCrLf
GoTo Exit_SendEmail
End Function
Et voila. Tu peux metter l'addresse source que tu veux mais ne penses pas que ce soit completement anonyme, ton IP, le nom de ta machine et de ton reseau son dans le "header" du message. Juste histoire qu'il ne te viennes pas á l'idée de spammer á outrance ;-) Donc á utiliser avec parcimonie!
Pour une personne utilisant juste Outlook et recevant l'email, c'est transparrant.
borntoclimb
Messages postés98Date d'inscriptionvendredi 4 janvier 2002StatutMembreDernière intervention 7 mars 20064 12 janv. 2006 à 14:53
T'as essayé ca:
Set CdoMailConfiguration = New CDO.Configuration
En fait en general le code marche sans la partie config que j'ai mise en commentaire. Sur quelle ligne á tu une erreur? Quelle est l'erreur?
Tu peux poster ton code, j'y jetterai un coup d'oeil.
borntoclimb
Messages postés98Date d'inscriptionvendredi 4 janvier 2002StatutMembreDernière intervention 7 mars 20064 13 janv. 2006 à 15:08
C'est parcequ'il te manque la reference á l'objet CDO. Il faut que tu references (Microsoft CDO for Windows 2000 library) depuis le menu Project/Reference.
A+
borntoclimb
Messages postés98Date d'inscriptionvendredi 4 janvier 2002StatutMembreDernière intervention 7 mars 20064 19 janv. 2006 à 14:43
Normalement le composant est la par defaut sous Windows 2000 et XP.
Si tu ne l'as pas, je crois qu'il est aussi installé avec Outlook 2000 (tu peux desinstaller Outlook apres normalement ca le laisse sur la machine).