Message de sécurité Outlook lors de la génération d'un mail auto en VBA

Bonjour,

Je viens vers vous concernant un problème que je rencontre lors de l'exécution d'une macro pour la génération d'un mail. J'ai regardé sur internet mais je ne trouve pas de solution à ceci.

Dans le cadre de mon travail, tous les matins je dois effectuer un check de mon infrastructure et de mes postes.

Une fois ceci effectué, je dois envoyer un mail avec le résultat de ce check.

Dans mon mail on va trouvé du texte et des captures écrans qui vont être récupéré sur d'autre feuille du classeur.

J'ai donc créé une macro qui me génère et remplie automatiquement mon mail pour que je n'ai plus qu'à l’envoyer.

La macro fonctionne très bien, j'ai juste un petit problème (si on peut appeler ça un problème).

Dès que la macro va exécuter les lignes suivantes :

- Set wDoc = myItem.GetInspector.WordEditor

  • wDoc.Application.Selection.Start = Len(.Body) (1er tableau)
  • wDoc.Application.Selection.Start = Len(.Body) (2ème tableau)

J'ai un message de sécurité sur Outlook me disant ceci :

Un programme essaie d'accéder aux informations d'adresse de courrier enregistrés dans Outlook. Si cette action est inattendue, cliquer sur refuser, et vérifier que votre antivirus est à jour.

Ce message apparaît trois fois lors de l'exécution de la macro, et a chaque fois on est obligé de cliquer sur "accepter".

En soit ce n'est pas problématique mais j'aimerai que ce message n’apparaisse pas ou sinon de pouvoir le valider avec la macro.

En regardant sur le net, beaucoup de gens disent qu'il faut modifier un paramètre sur Outlook, problème c'est que ce fichier on est plusieurs à l'utiliser et de plus on utilise des sessions qui nous ne permettent pas de modifier ce paramètre.

J'ai vu aussi que quelqu'un avait réussi à contourner le problème avec la commande "SendKeys".

J'ai testé avec ceci mais impossible de faire exécuter la commande sur le message, elle s'exécute dans le corps du mail.

Si jamais quelqu'un connait un solution pour contourner ceci en VBA je serais preneur.

Voici mon code pour la génération du mail (il est fonctionnel mais pas mis à jour, certaine ligne doivent être supprimé) :

Sub envoi_mail()

Dim OL As Object, myItem As Object, wDoc As Object, rng As Object, k As Integer, Dernligne As String, Ad_mail As String, Ad_mail_Copie As String, Separateur As String, MonTableau As Integer

Dim nb_lignes As Integer

Separateur = ";"

Sheets("Mail").Visible = True

Dim img As Object

Sheets("Mail").Select

For Each img In ActiveSheet.Shapes

img.Delete

Next

Columns("A:Z").Select

Selection.Clear

Range("A1").Select

Sheets("Parametres").Visible = True

Sheets("Infrastructures").Visible = True

Sheets("Players").Visible = True

Sheets("Players indisponibles").Visible = True

Sheets("Historique Players").Visible = True

Sheets("Historique Infrastructure").Visible = True

Sheets("Mail").Visible = True

Sheets("MeteoCheck").Select

Range("C1:I11").Copy

Sheets("Mail").Select

Range("A1").Select

Selection.PasteSpecial 8

ActiveSheet.Paste

Sheets("Players indisponibles").Select

Dernligne = Range("E" & Rows.Count).End(xlUp).Row

Range("A6:F" & Dernligne).Select

' Range("A6:F6").Select

' Range(Selection, Selection.End(xlToRight)).Select

Selection.Copy

Sheets("Mail").Select

Range("I13").Select

Selection.PasteSpecial 8

ActiveSheet.Paste

Range("A1").Select

Application.Run "Module_Historique_Infra.Maj_historique_Infras"

Application.Run "Module_Historique_Salles.Maj_historique_Salles"

' Sheets("Players indisponibles").Select

' MonTableau = Range("A6:F6", Selection.End(xlDown)).Select

Sheets("Parametres").Select

Dernligne = Range("F" & Rows.Count).End(xlUp).Row

For k = 5 To Dernligne + 3

If Cells(k, 6).Select = True Then

Ad_mail = Ad_mail & Separateur & Cells(k, 6).Value

End If

Next k

For k = 5 To Dernligne + 6

If Cells(k, 7).Select = True Then

Ad_mail_Copie = Ad_mail_Copie & Separateur & Cells(k, 7).Value

End If

Next k

Set OL = CreateObject("Outlook.Application")

Set myItem = OL.CreateItem(olMailItem)

Range("A1").Select

Sheets("Mail").Activate

' On prépare le mail en rentrant les paramètres : adresse des destinataires, en copie, objet du mail, corps du mail

With myItem

.To = Ad_mail

.CC = Ad_mail_Copie

.Subject = "[Morning Check Multimédia] Météo : " & Date & " - " & Time & " - " & "OK"

.Body = olFormatHTML

.Display

Set wDoc = myItem.GetInspector.WordEditor

' Texte avant tableau

Set rng = wDoc.Content

rng.InsertAfter "Bonjour," & vbNewLine & "" & vbNewLine & "Veuillez trouver ci-joint la météo du morning check multimédia de ce jour." & vbNewLine & vbNewLine

' Premier tableau

Range("A1:G11").CopyPicture

wDoc.Application.Selection.Start = Len(.Body)

wDoc.Application.Selection.End = wDoc.Application.Selection.Start

wDoc.Application.Selection.Paste

' Texte premier tableau

Set rng = wDoc.Content

rng.InsertAfter "" & vbNewLine & vbNewLine & "Détails relatifs aux players indisponibles :" & vbNewLine & vbNewLine

' Deuxieme tableau

Dernligne = Range("M" & Rows.Count).End(xlUp).Row

Range("I13:N" & Dernligne).Select

' Range("I13:N13").Select

' Range(Selection, Selection.End(xlDown)).Select

Selection.CopyPicture

wDoc.Application.Selection.Start = Len(.Body)

wDoc.Application.Selection.End = wDoc.Application.Selection.Start

wDoc.Application.Selection.Paste

' Texte premier tableau

Set rng = wDoc.Content

rng.InsertAfter "" & vbNewLine & vbNewLine & "Pour toute question complémentaire, merci de contacter le support visioconférence en composant le 87777 ou en écrivant à l'adresse : gts.support-visio@socgen.com" & vbNewLine & vbNewLine & "Cordialement" & vbNewLine & vbNewLine

End With

Set OL = Nothing

Set myItem = Nothing

Set wDoc = Nothing

Sheets("MeteoCheck").Select

End Sub

Merci d'avance pour votre aide sur ce problème, en espérant avoir été compréhensible sur l'explication de mon problème.

Bonjour Sniper560,

2 pistes pour contourner les sécurités OUTLOOK :

- Le site incontournable de Ron de Bruin (en anglais ) traitant du pilotage d'OUTLOOK depuis VBA EXCEL et particulièrement la page consacrée à ton problème : https://www.rondebruin.nl/win/s1/security.htm.

-Personnellement, confronté à ce type de problème pour l'envoi des mails, j'utilise un activeX tiers (payant) évitant le passage par OUTLOOK : https://www.chilkatsoft.com/refdoc/xChilkatMailManRef.html

Bonjour,

Personnellement, je te conseille de ne pas travailler dans le mail après le display (sauf exception avec sendkeys).

Il vaut mieux que tu prépares tous les éléments en amont en utilisant un onglet pour ce faire. Ensuite tu peux partir de cet onglet, construire ton .body ou ton .htmlbody et ensuite faire display ou send directement.

Pour insérer des images, tu peux aussi faire un copier/coller avec sendkeys après le display.

Voici un exemple simple ...

Bonjour,

merci pour ces informations, je vais regarder ceci.

Anthony

Rechercher des sujets similaires à "message securite outlook lors generation mail auto vba"