[VBA] Envoyer un mail avec Outlook sans Object Library

Bonjour,

J'ai utilisé la proposition de Greg.leo : https://forum.excel-pratique.com/excel/vba-envoyer-un-mail-avec-outlook-sans-object-library-71481

Sub SendOLMail_LateBound()
    Dim oAPP                       As Object
    Dim oItem                      As Object
    ' need to declare this constant as it has no meaning without
   ' the reference set to the Outlook library
   Const olMailItem               As Long = 0

    ' instantiate the Application - cannot use New without a reference
   ' so we must use CreateObject
   Set oAPP = CreateObject("Outlook.Application")

    ' #######################################
   ' NOTE: THE REST OF THE CODE IS IDENTICAL
   ' #######################################

    ' create a new email
   Set oItem = oAPP.CreateItem(olMailItem)

    ' set basic properties and display the email
   With oItem
        .To = "foo@bar.com"
        .Subject = "this is a test"
        .Body = "nothing to see here"
        .Display
    End With

End Sub

Mais cela ne fonctionne pas sur les profils "in line", il ne se passe rien. le code se déroule complètement, mais le message ne se crée pas.

Je me demande s'il ne faut pas préciser qu'Outlook est actif dans Firefox ?

Si c'est le cas, je ne sais pas faire. Est-ce que qq'1 peut m'aider ?

Bonjour,

Cette procédure est fonctionnelle et elle affiche le message dans Outlook.

Pour l'envoyer remplacer .Display par .Send

Il faut cependant libérer les ressources en fin de de procédure :

set oApp=nothing : set oItem=nothing

Que signifie un profil "in line" ?

Cdlt.

Bonjour Jean-Eric,

Merci pour ta réponse. oui, la procédure fonctionne très bien pour les personnes qui ont office 365 PRO, avec Outlook en "dur".

Mais pas pour ceux qui ont Office 365 "online" (et non "in line", désolée), càd, Outlook WEB lancé à partir de Firefox.

Merci pour la précision importante

set oApp=nothing : set oItem=nothing

Re,

Les procédures VBA ne fonctionnent pas avec Office Web.

Cdlt.

Bonjour,

Cela passe forcément par le pilotage de Firefox via VBA.
La galère assurée, avec une jolie usine à gaz qui ne fonctionnera pas systématiquement.

Il te reste la méthode CDO via le smtp de hotmail.

Function sendcdo()
Dim oCDO As Object
Set oCDO = CreateObject("CDO.Message")
With oCDO
   With .Configuration.Fields ' Configuration du compte mail SMTP pour hotmail
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.live.com"
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = "587"
    '----- Dans le cas ou le serveur demande une authentification
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "mon.mail@hotmail.fr"
    .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "monmotdepasse"
    '----------------
    .Update
   End With
   .From = "mon.mail@hotmail.fr"
   .To = "mail.destinataire@hotmail.fr"
   .Subject = "Essai de mail " & Now
   .TextBody = "Voici un petit message " & vbCrLf & "pour tester l'envoi de mail par CDO"
   .send
End With
End Function

Bonjour Franck,

Merci pour ta réponse, effectivement, cela parait compliqué...

Je vais quand même essayé la méthode CDO si je peux l'appliquer à Outlook Web.

Sinon, je demanderai aux utilisateurs de copier le corps du message dans leur messagerie.

Connais-tu la procédure pour savoir si l'utilisateur est sur office pro ou sur office web ?

Connais-tu la procédure pour savoir si l'utilisateur est sur office pro ou sur office web ?

Tu peux tester s'il possède l'application Outlook grâce à ce type de test :

Dim outObj As Object
On Error Resume Next
  Set outObj = CreateObject("Outlook.Application")
  If Err.Number > 0 Then 
    'ICI tu vois selon l'erreur s'il a Outlook ou autre erreur
  Else
    'ICI, le client possède Outlook application
  End If
On Error Goto 0

Bonjour,

Ceci est du code VBA et comme dit précédemment par Jean Eric, VBA n'est pas compatible avec l'interface WEB qui utilise d'autres langages de programmation (HTML, PHP, Python, C+, Perl, ...)

Merci Thev et Jean-Eric

oui, c'est bien malheureux, pourtant, il me semble que la suite Google utilise un code similaire à VBA qui fonctionne en Web ?

Merci Franck, cela fonctionne très bien. je suis déçue, mais à l'impossible nul n'est tenu.

Rechercher des sujets similaires à "vba envoyer mail outlook object library"