Contrôle de pièces jointes Outlook
Bonjour à tous,
On connaît tous le problème d'envoyer un mail et d'en oublier la pièce jointe qui allait avec et de le renvoyer avec comme sujet : "C'est mieux avec". :mouarf:
Le but ici est de vous montrer une technique pour limiter cet oubli grâce à Outlook (et un peu de VBA).
Concrètement, on va regarder s'il existe une pièce jointe lors de l'envoi du mail, et vérifier si le corps du message contient des mots clés du genre : "PJ", "joint"....
:!: Si vous avez une signature avec une image (en local) lors de l'envoie celle ci comptera comme une pièce jointe, il faudra donc ne pas la prendre en considération. :!:
Voici ce que ça donnerais :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'***************************************************************************************
' Auteur : MinDBuSteR
' Descriptif : Test si une pièce jointe est présente avant envoi
'***************************************************************************************
Dim mail As MailItem
Dim objAttachment As Attachments
Dim msg As String
Dim nbre_pj As Integer
If Item.Class = olMail Then
Set mail = Item
Set objAttachment = Item.Attachments ' Récupération de la collection des pièces jointes
nbre_pj = objAttachment.Count ' Calcul du nombre de pièces jointes
If (nbre_pj = 1) Then ' ATTENTION à paramétrer en fonction de la signature qui compte pour une pièce jointe
msg = mail.Body
'Liste des mots recherchés
If(InStr(1, msg, "PJ", vbTextCompare) Or _
InStr(1, msg, "jointes", vbTextCompare) Or _
InStr(1, msg, "joint", vbTextCompare) Or _
InStr(1, msg, "jointe", vbTextCompare) Or _
InStr(1, msg, "joints", vbTextCompare)) Then
If (MsgBox("Il semblerait que vous n'ayez ajouté aucune pièce jointe. Voulez-vous quand même envoyer ce message ?", vbYesNo + vbExclamation, "Attention") = vbNo) Then
Cancel = True
Exit Sub
End If
End If
End If
End If
End Sub |
Bien sûr les mots clés restent personnalisables à souhaits ;)