Mail VBA cdo ou powershell
Bonjour,
je poste un nouveau sujet. J'ai créé une DDB sur excel et je vous assure que c'est une première pour moi dans l'avancée et l'aboutissement du projet.
En revanche, je pêche sur le code VBA pour envoyer un mail sans passer par la case Outlook. Le code qui semble ne pas fonctionner se trouve sur le bouton "Envoyer mail" de l'Userfom "mail". Vous trouverez ci-joint le fichier. Il semble que ce ne soit pas dans le codage en lui même que pose le problème. Les erreurs qui me sont retournées sont de l'ordre de l'accès refusé au serveur ou bien un problème de chiffrement.
Je précise par ailleurs que le serveur que je cherche à atteindre via le bouton "envoyer mail" est un serveur professionnel chiffré en STARTTLS (d'où l'utilisation du port 587).
Pour avoir parcouru pas mal de forum, je crois savoir qu'il existe au moins deux méthodes pour ce genre d'exercice :
- l'usage de cdo.message
- l'usage d'un script via "powershell" ... mais là, je suis en train d'apprendre VBA ... si en plus je dois me mettre au c# (il me semble que c'est le langage utilisé sur le powershell) ben ça va être compliqué.
Enfin, l'ensemble du codage de ce projet va sembler lourd pour les puristes. Malheureusement je ne suis pas puriste et le codage a au moins le mérite de fonctionner.
J'ai besoin d'aide pour cette configuration. Pourriez vous m'aider à finaliser ce projet ?
Je vous remercie par avance pour vos contributions.
Bien cordialement.
PS : si vous testez l'ensemble du projet, il faut savoir qu'à chaque nouvelle création de dispute, un nouveau dossier est créé. Vous risquez donc d'avoir un message d'erreur si vous créez une dispute dans la mesure où le chemin d'accès au répertoire ne sera pas le même que sur ma machine.
Bonjour Steph7609
Pas certain que le directeur de l'INRAE soit heureux de savoir que vous partagez votre login et Mdp à tous
J'ai supprimé le fichier, MERCI de FAIRE ATTENTION !
Je vous conseille de changer de mot de passe au cas ou...
@+
Bonjour Bruno,
Quelle bourde!!!! Je suis vraiment désolé de cette maladresse. Et j'ai fais de même sur le sujet https://forum.excel-pratique.com/excel/textbox-vers-liste-deroulante-153467 . Pourriez vous supprimer le fichier joint ? Je n'avais pas fais gaffe aux modules!
Je suis désolé.
Comme suite à l'intervention (rassurant) de Bruno, le modérateur, le vous joins le code que j'ai utilisé pour l'envoi du mail :
Dim sujet As String
Dim destinataire As String
Dim texte As String
Dim PJ_1 As String, PJ_2 As String, PJ_3 As String, PJ_4 As String
Dim objmail As New CDO.Message
sujet = Me.titre.Caption
destinataire = Me.mail.Caption
texte = Me.corps_mail.value
PJ_1 = Me.PJ_1.Caption
PJ_2 = Me.PJ_2.Caption
PJ_3 = Me.PJ_3.Caption
PJ_4 = Me.PJ_4.Caption
objmail.Subject = sujet
objmail.Subject = sujet
objmail.Body = texte
With objmail.Configuration.Fields
.Item(CdoConfiguration.cdoSendUsingMethod) = 2
.Item(CdoConfiguration.cdosmtpauthentiate) = "monadresse@email.fr"
.Item(CdoConfiguration.cdoSendUserName) = "username"
.Item(CdoConfiguration.cdoSendPassword) = "password"
.Item(CdoConfiguration.cdoSMTPServer) = "smtp.organisation.fr"
.Item(CdoConfiguration.cdoSMTPServerPort) = 587
.Update
End With
If Me.PJ_1.Caption <> "" Then
objmail.AddAttachment PJ_1
End If
If PJ_2 <> "" Then
objmail.AddAttachment PJ_2
End If
If PJ_3 <> "" Then
objmail.AddAttachment PJ_3
End If
If PJ_4 <> "" Then
objmail.AddAttachment PJ_4
End If
objmail.CC = "destinataire2@organisme.fr"
objmail.SendBien cordialement.
- Messages
- 4'199
- Excel
- 2021 FR 64 bits
- Inscrit
- 13/06/2016
- Emploi
- bénévole associations Goutte d'Or
Bonjour,
L'envoi de mail via CDO ne fonctionne pas pour tous les serveurs de messagerie.Il fonctionne pour le serveur google : smtp.gmail.com sur le port 465 et ne fonctionne pas pour le serveur Microsoft : smtp.office365.com sur le port 587. Pour Microsoft, il faut utiliser un script Powershell lancé via le planificateur de tâche afin de disposer des autorisations nécessaires.