OVH Cloud OVH Cloud

Envoyer une pièce jointe avec Winsock...

6 réponses
Avatar
Buzz leclercq
Bonjour,

Je souhaiterai avoir un exemple d'envoi d'une pièce jointe relié à un
message en utilisant Winsock et le protocol SMTP (je ne passe pas par MAPI)

Merci ++

BUZZ

6 réponses

Avatar
Adam Pietrasiewicz
W ¶rodê, 27 sierpnia 2003 13:24:14 Buzz leclercq napisa³/a w wiadomo¶ci
news:bii42k$3j0$




Bonjour,

Je souhaiterai avoir un exemple d'envoi d'une piece jointe relié a un
message en utilisant Winsock et le protocol SMTP (je ne passe pas par MAPI)



C'est a dire tu demandes l'exemple d'une application basee sur smtp, avec
en plus le systeme de codage en base64 des pieces jointes.

J'ai ecrit un client mail en VB (je l'utilise actuellement en ecrivant ce
message) mais j'y travaille depuis 1 an et demi...

Bien sur mon client envoie et recupere les mails, toi, tu veux seulement
envoyer les mails. Pour cela, tu dois lire les RFC, c'est a dire les normes
de construction des mails, des entetes etc etc.

Il y a plein d'exemples sur le net, mais sois conscient qu'un envoi de mail
par winsock avec une piece jointe N'EST PAS un programme do 20 lignes.

Adam


--
Ten list zosta³ wys³any przy u¿yciu Go³±bka http://www.amsoft.com.pl/golabek
Avatar
Buzz leclercq
Ok,

J'ai déja écrit le prog pour l'envoi de mail sans piece jointe...ca marche
sans probleme.

Par contre sur le NET au niveau SMTP, je ne trouve aucun exemple sur les PJ.
Meme pas une explication simple...

BUZZ

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



W ¶rodê, 27 sierpnia 2003 13:24:14 Buzz leclercq napisa³/a w wiadomo¶ci
news:bii42k$3j0$

>
>
>
> Bonjour,
>
> Je souhaiterai avoir un exemple d'envoi d'une piece jointe relié a un
> message en utilisant Winsock et le protocol SMTP (je ne passe pas par


MAPI)

C'est a dire tu demandes l'exemple d'une application basee sur smtp, avec
en plus le systeme de codage en base64 des pieces jointes.

J'ai ecrit un client mail en VB (je l'utilise actuellement en ecrivant ce
message) mais j'y travaille depuis 1 an et demi...

Bien sur mon client envoie et recupere les mails, toi, tu veux seulement
envoyer les mails. Pour cela, tu dois lire les RFC, c'est a dire les


normes
de construction des mails, des entetes etc etc.

Il y a plein d'exemples sur le net, mais sois conscient qu'un envoi de


mail
par winsock avec une piece jointe N'EST PAS un programme do 20 lignes.

Adam


--
Ten list zosta³ wys³any przy u¿yciu Go³±bka


http://www.amsoft.com.pl/golabek






Avatar
François Picalausa
Bonjour/soir,

Meme pas une explication simple...



Peut-être justement parce que ce n'est pas simple?
Mais les RFC nécéssaires sont indiquées sur:
http://www.tin.org/docs.html

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"Buzz leclercq" a écrit dans le message de
news:bii81b$700$
Ok,

J'ai déja écrit le prog pour l'envoi de mail sans piece jointe...ca
marche sans probleme.

Par contre sur le NET au niveau SMTP, je ne trouve aucun exemple sur
les PJ. Meme pas une explication simple...
"Adam Pietrasiewicz" a écrit dans le message de
news:


W ¶rodê, 27 sierpnia 2003 13:24:14 Buzz leclercq napisa³/a w
wiadomo¶ci news:bii42k$3j0$

Bonjour,

Je souhaiterai avoir un exemple d'envoi d'une piece jointe relié a
un message en utilisant Winsock et le protocol SMTP (je ne passe
pas par MAPI)



C'est a dire tu demandes l'exemple d'une application basee sur smtp,
avec en plus le systeme de codage en base64 des pieces jointes.

Il y a plein d'exemples sur le net, mais sois conscient qu'un envoi
de mail par winsock avec une piece jointe N'EST PAS un programme do
20 lignes.




Avatar
Adam Pietrasiewicz
W ¶rodê, 27 sierpnia 2003 14:31:48 Buzz leclercq napisa³/a w wiadomo¶ci
news:bii81b$700$

J'ai déja écrit le prog pour l'envoi de mail sans piece jointe...ca marche
sans probleme.

Par contre sur le NET au niveau SMTP, je ne trouve aucun exemple sur les PJ.
Meme pas une explication simple...



C'est relativement comlexe.

D'abord il faut voir les RFC pour bien construire un mail multipart.

Ensuite il faut creer une proc de codage de mail

Moi, je me suis fait une dll en C++ pour que cela soit plus rapide -
manipulation des grandes quantites de caracteres en VB n'est pas commode.

Je crois que tu devrais trouver des dll d'encodage en base64 sur le net.

Et le tour est joue.

En quelques mots:

dans l'entete du mail:

tu dois ajouter les lignes suivantes:

Content-Type: multipart/mixed;
boundary="Ici_un_identifiant_unique_de_ta_piece_jointe_"


tu ajoutes une ligne SOUS l'entete:

This is a multi-part message in MIME format.

Tu commences ta partie texte du mail par

--Ici_un_identifiant_unique_de_ta_piece_jointe_
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 8bit


et tu commences ta partie piece jointe par:

--Ici_un_identifiant_unique_de_ta_piece_jointe_
Content-Type: image/jpeg;
name="une_belle_photo_porno.jpg";
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="une_belle_photo_porno.jpg";

Apres quoi tu mets ta piece jointe encodee en base64 et ensuite tu finis
tout avec:

--Ici_un_identifiant_unique_de_ta_piece_jointe_


Et le tour est joue!

Adam


--
Ten list zosta³ wys³any przy u¿yciu Go³±bka http://www.amsoft.com.pl/golabek
Avatar
Adam Pietrasiewicz
W ¶rodê, 27 sierpnia 2003 17:52:21 Ledev napisa³/a w wiadomo¶ci
news:

Je crois que tu devrais trouver des dll d'encodage en base64 sur le net.



Tiens, un exemple d'encodage base64 trouvée sur le net:



Oui, c'est cela...

Essayez d'encoder comme ca un fichier de 10 MO...

On ne peut pas manipuler de grandes quantites de texte en VB - ca tue
l'ordinateur!

Adam


--
Ten list zosta³ wys³any przy u¿yciu Go³±bka http://www.amsoft.com.pl/golabek
Avatar
Adam Pietrasiewicz
W ¶rodê, 27 sierpnia 2003 23:41:17 ng napisa³/a w wiadomo¶ci
news:#




Salut,
Pourquoi ne pas faire une DLL COM (en utilisant ATL notamment) ou "API" en
C++ ?

Ca serait encore plus rapide !!!



Bien sur!

Le probleme commence quand le fichier est un peu plus important que quelque
centaines de KO.

J'ai essaye, croyez moi.

On peut bien sur le partager en parties, et encoder morceau par morceau,
mais finalement il est plus facile de le faire en une seule fois. D'apres
mes tests, ayant fait une petite dll en C++ je gagne 85% du temps au moins
par rapport au VB dans toutes les manipulationsdes chaines de taille
importante.

Adam


--
Ten list zosta³ wys³any przy u¿yciu Go³±bka http://www.amsoft.com.pl/golabek