Contrôler outlook (1) - envoyer un mail depuis vb

Soyez le premier à donner votre avis sur cette source.

Snippet vu 52 046 fois - Téléchargée 81 fois

Contenu du snippet

voici un code, fourni par microsoft, qui vous permet d'envoyer un mail par l'intermédiaire d'outlook depuis votre appli.

n'oubliez pas d'ajouter une référence à outlook dans votre appli.

Source / Exemple :


Function CreateMail(astrRecip As Variant, _
                   strSubject As String, _
                   strMessage As String, _
                   Optional astrAttachments As Variant) As Boolean

   Dim olApp                 As Outlook.Application
   Dim objNewMail            As Outlook.MailItem
   Dim varRecip              As Variant
   Dim varAttach             As Variant
   Dim blnResolveSuccess     As Boolean

   On Error GoTo CreateMail_Err

   Set olApp = New Outlook.Application
   Set objNewMail = olApp.CreateItem(olMailItem)

   With objNewMail
   ' Add each item in the varRecip array to the Recipients collection.
      For Each varRecip In astrRecip
         .Recipients.Add varRecip
      Next varRecip

   ' Determine if all recipients have corresponding entries in the
   ' Outlook address book.
      blnResolveSuccess = .Recipients.ResolveAll

   ' Add each item in the varAttach array to the Attachments collection 
   ' and specify the subject and text of the mail message.
      For Each varAttach In astrAttachments
          .Attachments.Add varAttach
      Next varAttach
      .Subject = strSubject
      .Body = strMessage

   ' If all recipients are valid then send the message now, otherwise
   ' display the message so the user can fix invalid e-mail addresses.
      If blnResolveSuccess Then
          .Send
      Else
         MsgBox "Unable to resolve all recipients. Please check " _
             & "the names."
         .Display
      End If
   End With

   CreateMail = True

CreateMail_End:
   Exit Function
CreateMail_Err:
   CreateMail = False
   Resume CreateMail_End
End Function

Conclusion :


la propriété astrrecip désigne le nom du recipient (destinataire) INSCRIT dans le carnet d'adresse outlook.
je vais bientot ajouter une source pour montrer comment manipuler le carnet d'adresse outlook

A voir également

Ajouter un commentaire

Commentaires

Ce code se met en erreur dans:
Set objNewMail = olApp.CreateItem(olMailItem)
With objNewMail
ici il passe en erreur
Avez vous une astuce ?
Peut-il envoyer un fichier attaché ?
utilisez HTMLBody au lieu de Body pour envoyer en html...

oui il peut envoyer des fichiers attachés....
avec Attachments.Add
Alors la chapeau mais j'ai un blem quand j'execute j'ai une erreur de compilation :

Function CreateMail(astrRecip As Variant, _
strSubject As String, _
strMessage As String, _
Optional astrAttachments As Variant) As Boolean

Dim olApp As Outlook.Application

Il me dit : Type définit par l'utilisateur non definit !
Aidez mwa svp je cherche komment envoyer un mail avec VB :'( merci !!
J'aimerais bien essayer ce code source, mais j'y arrive pas (jsuis nouvau sur ce site), alors, est-ce qu'il faut juste mettre un boutton dans un projet, et dans son code faire du cpier-coller de toute la source (a savoir: Function CreateMail(astrRecip As Variant, _
strSubject As String, _
strMessage As String, _
Optional astrAttachments As Variant) As Boolean

Dim olApp As Outlook.Application
Dim objNewMail As Outlook.MailItem
Dim varRecip As Variant
Dim varAttach As Variant
Dim blnResolveSuccess As Boolean

On Error GoTo CreateMail_Err

Set olApp = New Outlook.Application
Set objNewMail = olApp.CreateItem(olMailItem)

With objNewMail
' Add each item in the varRecip array to the Recipients collection.
For Each varRecip In astrRecip
.Recipients.Add varRecip
Next varRecip

' Determine if all recipients have corresponding entries in the
' Outlook address book.
blnResolveSuccess = .Recipients.ResolveAll

' Add each item in the varAttach array to the Attachments collection
' and specify the subject and text of the mail message.
For Each varAttach In astrAttachments
.Attachments.Add varAttach
Next varAttach
.Subject = strSubject
.Body = strMessage

' If all recipients are valid then send the message now, otherwise
' display the message so the user can fix invalid e-mail addresses.
If blnResolveSuccess Then
.Send
Else
MsgBox "Unable to resolve all recipients. Please check " _
& "the names."
.Display
End If
End With

CreateMail = True

CreateMail_End:
Exit Function
CreateMail_Err:
CreateMail = False
Resume CreateMail_End
End Function) parceque ca, jlai dja fait et ca marche pas,
car ce que jaimerais faire, moi, c'est au clik dun boutton, le contenu du text1 et du text2 me soient envoyé par mail, si tu peux maider...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.