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

Envoi de mail fichier joint qui ne part pas

3 réponses
Avatar
TEV
Bonjour,

Désolé c'est encore moi.
Lorsque j'envoi mon mail avec mon fichier joint(codé en base64) seules les
entêtes du texte ou du fichier sont lues comme entêtes.

Voici les commandes que j'envoi au serveur SMTP.

Mail from: <adresse> & vbCrLf
rcpt to: <destinataire> & vbCrLf
Data & vbcrlf
from: "toto" <MonAdresse> & vbCrLf
Winsock2.SendData "To: " & toNomMail & vbCrLf
' L'objet du message
Winsock2.SendData "Subject: " & objMsg & vbCrLf
' Définit le mail comme comportant plusieurs body part
Winsock2.SendData "MIME-Version 1.0" & vbCrLf
Winsock2.SendData "Content-Type: multipart/mixed; boundary="
& Chr(34) & "NextPart" & Chr(34) & 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: 8bit" &
vbCrLf & vbCrLf

Winsock2.SendData CorpsMessage & vbCrLf & vbCrLf

' Jusqu'ici ça va puisque mon texte s'affiche comme je souhaite le voir. Par
contre après le body part n'est pas pris en compte puisque je vois toute la
partie qui suit dans le mail (sauf la commande Winsock).

Winsock2.SendData "--NextPart" & vbCrLf
Winsock2.SendData "Content-Type: application/octet-stream; name=" & Chr(34)
& "NomFichier" & Chr(34) & vbCrLf

Winsock2.SendData "Content-Transfert-Encoding: base64" & vbCrLf
Winsock2.SendData "Content-Disposition: attachment; filename=" & Chr(34) &
"NomFichier" & Chr(34) & vbCrLf & vbCrLf

' Envoi le fichier zip codé en base 64
sDataToSend = FichierCode
Winsock2.SendData sDataToSend & vbCrLf & vbCrLf
' Ferme le dernier body part
Winsock2.SendData "--NextPart--" & vbCrLf

Quelqu'un voit où il y a un problème ? D'avance merci pour toute les
réponses ou suggestions.

Christian.

3 réponses

Avatar
Adam Pietrasiewicz
<<< Attention - mon adresse dans l'entete de ce message >>>
<<< est une adresse ANTISPAM - pour m'ecrire cliquez sur >>>
<<< http://www.cerbermail.com/?DQr0g2Y88R >>>
=================================================== Le 31 pa¼dziernika 2003 18:21:10 TEV a ecrit dans un message
news:3fa29a05$0$29851$


Quelqu'un voit où il y a un probleme ? D'avance merci pour toute les
réponses ou suggestions.



Le mail, c'est mon domaine.

A premiere vue il n'y a pas de lezard, sauf peut etre la fin du message,
c'est a dire vbCrLf & "." & vbcrlf apres l'envoi de tout.


--
Adam Pietrasiewicz
Pologne
---
Ce message vous a ete apporte par Le Pigeon
http://www.amsoft.com.pl/golabek
Avatar
TEV
Merci pour la réponse.
J'ai pas mis le point de fin ici (c'est un oubli) mais dans le prog il y
est.

Par contre j'allais écrire que je pensais avoir trouvé, je venais de
recevoir mon mail comme il faut(texte et piece jointe). En rajoutant un
VbCrLf a la ligne d'entete tout de suite apres MIME
Content-Type: multipart/mixed; boundary="NextPart" & VbCrLf & VbCrLf

Seulement lorsque je cherche a ouvrir le fichier Windows me dit qu'il n'est
pas bon. Ce doit etre un probleme du a l'encodage. Ou bien au fait que le
fichier codé est envoyé tel quel dans une variable (sans etre découpé). Le
mieux pour découpé le fichier est de faire des envois par paquet de 76
caracteres ou bien ici cela n'entre pas en ligne de compte et on peut le
découper en de plus large paquet ?

Christian.



"Adam Pietrasiewicz" a écrit dans le
message de news:


<<< Attention - mon adresse dans l'entete de ce message >>>
<<< est une adresse ANTISPAM - pour m'ecrire cliquez sur >>>
<<< http://www.cerbermail.com/?DQr0g2Y88R >>>
=================================================== > Le 31 pa¼dziernika 2003 18:21:10 TEV a ecrit dans un message
news:3fa29a05$0$29851$


> Quelqu'un voit où il y a un probleme ? D'avance merci pour toute les
> réponses ou suggestions.

Le mail, c'est mon domaine.

A premiere vue il n'y a pas de lezard, sauf peut etre la fin du message,
c'est a dire vbCrLf & "." & vbcrlf apres l'envoi de tout.


--
Adam Pietrasiewicz
Pologne
---
Ce message vous a ete apporte par Le Pigeon
http://www.amsoft.com.pl/golabek





Avatar
Adam Pietrasiewicz
<<< Attention - mon adresse dans l'entete de ce message >>>
<<< est une adresse ANTISPAM - pour m'ecrire cliquez sur >>>
<<< http://www.cerbermail.com/?DQr0g2Y88R >>>
=================================================== Le 01 listopada 2003 00:04:08 TEV a ecrit dans un message
news:3fa2ea67$0$28759$

Par contre j'allais écrire que je pensais avoir trouvé, je venais de
recevoir mon mail comme il faut(texte et piece jointe). En rajoutant un
VbCrLf a la ligne d'entete tout de suite apres MIME
Content-Type: multipart/mixed; boundary="NextPart" & VbCrLf & VbCrLf



Effectivement!

Je n'ai pas fait attention!


Seulement lorsque je cherche a ouvrir le fichier Windows me dit qu'il n'est
pas bon. Ce doit etre un probleme du a l'encodage. Ou bien au fait que le
fichier codé est envoyé tel quel dans une variable (sans etre découpé). Le
mieux pour découpé le fichier est de faire des envois par paquet de 76
caracteres ou bien ici cela n'entre pas en ligne de compte et on peut le
découper en de plus large paquet ?



Je te conseille de faire comme moi, je fais. Apres des differents
tests et essais j'ai trouve, je crois, la meilleure facon d'envoyer
les mails. Et je t'assure, j'ai tout teste - depuis presque 2 ans
j'ecris un client mail!

En fait tu divises le travail en plusieurs etapes.

1. Creation du mail et sauvegarde sur disque (p.ex. dans le repertoire
TEMP du windows).

2. Connection au serveur et envois de tous les HELO, EHLO, MailFrom,
AUTH et compagnie

3. Et pour l'envoi du mail proprement dit, tu ouvres le fichier et tu
l'envoyes par petits bouts - moi je fais par morceau de 2048
caracteres, en attendant avant chaque envoi du paquet suivant que le
paquet precvedent soit envoye. Comme ca tu evites la surcharge de la
memoire dans les cas des fichiers volumineux - avant de faire comme ca
j'envoyais la totalite de mon mail par une seule variable et parfois,
dans des cas extremes (un mail de 6 MO p.ex) l'ordinateur me disait
"merci et a bientot" - j'ai un Pentium 233 64 MO RAM.

4. A la fin tu envoyes vbCrLf & "." & vbCrLf et le tour est joue!

--
Adam Pietrasiewicz
Pologne
---
Ce message vous a ete apporte par Le Pigeon
http://www.amsoft.com.pl/golabek