Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

vb 6 et envoi de mails avec des pièces jointes : dur

3 réponses
Avatar
gépi
Bonjour,
J'ai fait un code pour envoyer des mails avec des pièces jointes. Quand je
passe d'un mail au suivant, la propriété attachmentcount reste bloquée que le
nombre de pièces jointes du précédent message si bien que si je veux envoyer
moins de pièces jointes, je peux pas et le programme me rajoute
automatiquement des pièces jointes du précédent message.
Je pense qu'il faudrait effacer les pièces inutiles avec attachmentdelete,
mais je n'arrive pas à trouver la syntaxe.
Mes pièces jointes s'appellent NomFichier(0) à NomFichier(i).
Je sais que c'est pas bien de se lancer dans la programmation quand on est
nul comme moi mais c'est pour une bonne cause. Mon programme est destiné à un
service public et n'aura pas d'exploitation commerciale.
Alors si une bonne âme veut me dépanner, ça sera une bonne action.
Merci
--
Gépi

3 réponses

Avatar
Do Re Mi chel La Si Do
Bonjour !

c'est pour une bonne cause. Mon programme est destiné à un service
public et n'aura pas d'exploitation commerciale




Avant de te répondre sur le fond, je tiens à te faire remarquer que cette
phrase, que tu as écrite, a pour moi de très forts relents politiques ; et
qu'il existe des points de vues nettement différents.

C'est juste dans le but d'une meilleure prise de conscience de la variété
d'opinions (je précise que je n'ai pas indiqué mon pointe de vue).



Ensuite, pour les e-mails, je suppose que tu passes par CDO ; alors, il
suffit de réaffecter l'objet, pour le ré-initialiser à vide. Exemple :

Dim str,objEmail
Set objEmail = CreateObject("CDO.Message")
objEmail.From = ""
objEmail.To = "
objEmail.Subject = "message d'essai"
objEmail.Textbody = "Corps (body) du message."
objEmail.AddAttachment "C:vodka.jpg"
objEmail.Send

Set objEmail = CreateObject("CDO.Message")
objEmail.From = ""
objEmail.To = "
objEmail.Subject = "message d'essai 2"
objEmail.Textbody = "Corps (body) du message."
objEmail.Send

Wscript.quit


Le second message n'aura pas de pièce(s) jointe(s)



@-salutations

Michel Claveau



Avatar
gépi
En fait je procède comme ceci :
Dim Chemin As String
Dim Deb, Mil, fin As String
Dim Pos1
Chemin = "c:MizetteA_envoyer" & List & ""
Pos1 = InStr(1, Datemise1.Text, "/", vbBinaryCompare)
Deb = Left(Datemise1.Text, Pos1 - 1)
Sujet = Right(Datemise1.Text, Len(Datemise1.Text) - Pos1)
Pos1 = InStr(1, Sujet, "/", vbBinaryCompare)
Mil = Left(Sujet, Pos1 - 1)
fin = Right(Sujet, Len(Sujet) - Pos1)
Sujet = Deb & Mil & fin

Sujet = "Mizette " & Sujet
Corps = "Veuillez trouver ci joint mes instructions de mise en état"

Call GetNomFichier(Chemin)

With MAPIMessages1
.MsgIndex = -1
.RecipDisplayName = Adrmel ' ici l adresse e-mail du destinataire
.MsgSubject = Sujet ' ici le sujet du mail
.MsgNoteText = Corps ' ici le message du mail
.AttachmentPathName = NomFichier(0)

Dim j As Integer

If a > 1 Then
For i = 0 To a - 1
.AttachmentIndex = i
.AttachmentPathName = NomFichier(i)
Next
End If
.SessionID = MAPISession1.SessionID
.Send (True) 'Tu mets la valeur à False si tu veux ne pas voir
apparaître la fenêtre du message

End With
.. ensuite j'ai uen boucle pour incrémenter mon "chemin". L'integer List
change et la programme va chercher les NomFichier dans un tableau.

J'ai essayé de résoudre le problème avec ça :
Dim b As Integer
Dim x As Integer
b = .AttachmentCount
x = b - 1
If a < b - 1 Then
For i = 0 To a - 1
AttachmentDelete = NomFichier(i)
x = x - 1
Next
End If
Mais visiblement ça ne sert à rien : je dois pas avoir la bonne syntaxe pour
supprimer les pièces jointes.
Qu'est-ce que je dois effectivement ajouter ?
Merci Do re mi chel etc.
--
Gépi


@-salutations

Michel Claveau







Avatar
gépi
J'ai réussi à faire fonctionner avec CDO.
Cependant, j'ai dû supprimer la ligne Wscript.quit qui me réclamait un objet
et ça marche sans. ESt-ce grave ?
En tous cas merci beaucoup.
Je n'ai pas bien compris l'allusion me reprochant des relents politiques
lorsque je disais que mon programme n'a pas de but commercial.
Il n'y avait aucune intention de blesser qui que ce soit de ma part. Je ne
voulais lancer aucun débat sur le sujet parce que je crois savoir que ça
n'est pas le lieu. Il s'agissait simplement d'une précision sur mes
intentions personnelles. Il faut de tout pour faire un monde et chacun est
utile à sa place.
Encore une fois merci pour le coup de pouce qui m'a dépanné après de longues
journées de galère.
--
Gépi



Bonjour,
J'ai fait un code pour envoyer des mails avec des pièces jointes. Quand je
passe d'un mail au suivant, la propriété attachmentcount reste bloquée que le
nombre de pièces jointes du précédent message si bien que si je veux envoyer
moins de pièces jointes, je peux pas et le programme me rajoute
automatiquement des pièces jointes du précédent message.
Je pense qu'il faudrait effacer les pièces inutiles avec attachmentdelete,
mais je n'arrive pas à trouver la syntaxe.
Mes pièces jointes s'appellent NomFichier(0) à NomFichier(i).
Je sais que c'est pas bien de se lancer dans la programmation quand on est
nul comme moi mais c'est pour une bonne cause. Mon programme est destiné à un
service public et n'aura pas d'exploitation commerciale.
Alors si une bonne âme veut me dépanner, ça sera une bonne action.
Merci
--
Gépi