OVH Cloud OVH Cloud

Je reformule mon PB d'envoi de mail avec fichier joint.

1 réponse
Avatar
TEV
Bonjour,

Je cherche à envoyer un mail via le contrôle Winsock
Tout semble fonctionner, mais voici les différents soucis rencontrés :

Lorque je reçoit ce mail avec Outlook, j'ai un message nickel mais le
fichier joint contient le codage base64 du fichier lui même au lieu des
données y figurantes.

Lorsque je reçoit ce mail sur une boîte mail type Caramail le message
contient les entêtes MIME et les caractères du fichier encodé en base64.

Quelqu'un sait-il ce qui se passe ? Je suis dessus depuis trois jour. Par
avance merci pour toutes les réponses.

Christian.
P.S. Je joins le code d'envoi des commandes SMTP à partir du DATA

sDataToSend = "DATA" & vbCrLf
Winsock2.SendData sDataToSend

Case SMTP_DATA

' Change l'état de la session
CurrentSMTPSessionState = SMTP_SENDMESSAGE

' Envoie les en-têtes du message
Winsock2.SendData "From: " & Chr(34) &
"Stephenson & Chr(34) & "<" & AdMail & ">" & vbCrLf
' Indique à qui est adressé le message
Winsock2.SendData "To: " & toNomMail & vbCrLf
' L'objet du message
Winsock2.SendData "Subject: " & objMsg & vbCrLf
' Définit le mail comme comportant plusieurs objets
Winsock2.SendData "MIME-Version 1.0" & vbCrLf Winsock2.SendData
"Content-Type:multipart/mixed; "
Winsock2.SendData "boundary=" & Chr(34) & "NextPart" & Chr(34) & vbCrLf &
vbCrLf

' Partie texte plein
Winsock2.SendData "--NextPart" & vbCrLf
Winsock2.SendData "Content-Type:text/plain; charset=" & Chr(34) &
"ISO-8859-1" & Chr(34) & vbCrLf
Winsock2.SendData "Content-Transfert-Encoding: base64" & vbCrLf & vbCrLf

' le corps du message
sDataToSend = corpsMsg
Winsock2.SendData sDataToSend & vbCrLf
' définition et envoi du fichier joint
Winsock2.SendData "--NextPart" & vbCrLf
Winsock2.SendData "Content-Type:application/octet-stream;name=" & Chr(34) &
"MajBD.zip" & Chr(34) & vbCrLf
Winsock2.SendData "Content-Transfert-Encoding:base64" & vbCrLf
Winsock2.SendData "Content-disposition:attachment;filename=" & Chr(34) &
"MjBD.txt" & Chr(34) & vbCrLf & vbCrLf

' Envoi le fichier zip codé en base64
sDataToSend = decoupeFichier
Winsock2.SendData sDataToSend & vbCrLf & vbCrLf
' Ferme les corps multiples
Winsock2.SendData "--NextPart--" & vbCrLf

' Envoie un point pour indiquer la fin de l'envoie des données
Winsock2.SendData vbCrLf & "." & vbCrLf

1 réponse

Avatar
Nicolas
Salut,

A moins que tu ne veuilles absolument te servir de
winsock, tu peux utiliser une autre technologie qui se
nomme jmail. Je t'invite à regarder le projet que j'ai
développé à cet egard

http://www.vbfrance.com/code.aspx?ID259

Bonne prog

Nico