begin process at 2008 07 05 06:21:29
1 205 051 membres
37 nouveaux aujourd'hui
14 118 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SMTPCLIENT ET SMTPMESS : COMPOSANTS POUR ENVOYER DES MAILS AU FORMAT MIME


Information sur la source

Catégorie :Réseau & Internet Classé sous : mail, smtp, mime, encodage Niveau : Expert Date de création : 30/04/2007 Date de mise à jour : 02/05/2007 08:33:52 Vu / téléchargé: 3 991 / 560

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note

Description

Il y a déjà quelques mois de cela Cirec m'avait demandé si je connaissais un composant autre qu'Indy et ICS pour envoyer des mails.

Puis en privé, Cirec un jour m'a demandé si je connaissais la technique pour envoyer un mail avec identification. On a passé pas mal de temps ensemble pour trouver la solution qui est loin d'être simple.

Pour répondre définitivement à ces deux questions de Cirec, je vous propose deux composants

SMTPClient : Composant basé sur la dll Winsock pour envoyer le mail

SMTPMess : Composant pour créer le message en lui même

Profondemment différent des composants équivalents Indy et ICS, SMTPMess risque un peu de vous dérouter. Cependant ce composant permets de composer beaucoup plus intimement son mail.

En espérant que Mauricio trouve son bonheur avec le format UTF

Bon coding

Conclusion

Je remercie Florenth pour son aide précieuse sur la partie encodage ainsi que les différents tests (Ca pas été une partie de plaisir hein ? ;)).
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

30 avril 2007 22:09:21 :
J'avais pas de marteau donc voila quelque modif avec en plus le bon zip (je m'étais trompé : ouf personne n'a rien vu mdrrr)
02 mai 2007 08:33:52 :
Modifications proposées par Florenth et Delphicool effectuées : merci à eux
  • signaler à un administrateur
    Commentaire de Francky23012301 le 30/04/2007 19:00:54

    Arfff Merci à f0xi aussi : Désolé de t'avoir oublié

  • signaler à un administrateur
    Commentaire de florenth le 30/04/2007 20:50:01

    Ah oui, ça a pas été une partie de plaisir ^^
    En tout cas je suis bien content que tu aies réussi à finaliser une version fonctionnelle.

    Par contre, passe moi un marteau que je te cogne la tête: c'est quoi ces variables globales T et NumRows ???? Je t'ai dit 100 fois de les changer en var locales et en paramètres "const" des fonctions !! Pense au multi-threading pardi, ou alors déclares les dans une section "threadvar".

    En tout cas, je suis ravi de voir un composant permettant d'envoyer des mails intimes ... lol

    ++
    Flo

  • signaler à un administrateur
    Commentaire de Caribensila le 30/04/2007 21:50:22

    P'tain!!!
    Je mesure le chemin qu'il me reste à parcourir et je me sens tout petit.
      
    Petit,  petit,  petit...


    J'avais rien à dire (ni à redire, soit dit), mais je tenais à te dire bravo Francky!

  • signaler à un administrateur
    Commentaire de Francky23012301 le 30/04/2007 22:11:38

    Vous etes bien trop modeste Monsieur Cari : je suis une crepe suzette comparéà vous.

    Alors pour ceux qui sont obligés d'utiliser le mode identification : vous devez obligatoirement mettre votre email réel comme destinataire (c'est pas de ma faute).

    Pour le coté intimiste : lol. C'est tellement mieux mdr.

  • signaler à un administrateur
    Commentaire de Francky23012301 le 30/04/2007 22:12:23

    Grrr pas comme destinataire comme expéditeur : le niouf

  • signaler à un administrateur
    Commentaire de florenth le 01/05/2007 12:20:07

    Ahh ben c'est quand même largement meilleur sans les var globales. En plus tu utilises les streams, c'est plus moderne lol.

    Juste deux suggestions:
    - Tu peux utiliser un paramètre "const" pour toutes tes procédures de strings, ça augmente les performances. Par contre, il n'est pas nécessaire de mettre "const" pour les Integer, Byte ... enfin pour tout ce qui fait moins de 32 bits.

    - Tu peux aussi utiliser un TStringStream si ça te simplifie ton code par moment (attention à ne pas en abuser, des fois, ça complique plus qu'autre chose ...)

    ++
    Flo

  • signaler à un administrateur
    Commentaire de cantador le 01/05/2007 14:16:19

    salut Francky23012301,

    "Cependant ce composant permets de composer beaucoup plus intimement son mail."

    merci d'apporter plus d'indications..histoire d'allécher ceux qui voudraient installer les deux compos et de dire finalement en quoi ils présentent un intérêt par rapport à ceux existants.

  • signaler à un administrateur
    Commentaire de Francky23012301 le 01/05/2007 17:16:23

    Salut Candator

    L'avantage avec les composants Indy résident en plusieurs points.

    1)Tu n'as pas besoin de coder quoi que se soit pour écrire ton message : tout peut se faire dedans.
    2)La BccList et CCList te permettent de mettre ton mail en copie carbonne cachée ou pas via des TStringList.
    3)Dans la partie expéditeur tu peux rentrer toi meme tout les destinataires sans à te soucier de quoi que se soit sauf de respecter la RFC.
    4)Tu peux choisir toi meme le type d'encodage : Base 64, QutedPrintable, 8 bits, 7 bits, binary. Indy t'impose tout.
    5)tu peux parametrer les contents type poour les fichiers et les textes.
    6) Il est ultra facile d'envoyer un message en texte brut ainsi qu'un autre en meme temps en html
    7)Il est plus rapide qu'Indy et plus efficace (combien de fois avec Indy j'ai eu des mails qui ne sont jamais arrivé).
    8)Tu peux utiliser tes propres fonctions d'encodage
    9)Ils sont plus léger qu'indy et de loin pas de uses ) rallonge qui ne servent à rien.
    10)Pas de problemes de version pour delphi : d6,d7,d2005d,2006
    11)Il est peu commenté mais suffissament bien fait pour laisser une souplesse pour l'utilisateur que tu n'auras pas avec Indy.

    Autrement il est mieux qu'indy : lol.


    Pour répondre à un autre posteur

    En mode atNone (sans identification)
    1)Utiliser le smtp de son fai ainsi que le port associé
    2)Expéditeur : son adresse mail via cet fai
    3)Destinataire : celui qu'on veut
    4)Nom de l'expéditeur : celui qu'on veut

    En mode atLogin (avec identification)
    1)Utiliser le smtp de son fai ainsi que le port associé
    2)Expéditeur : son adresse mail via cet fai
    3)Destinataire : celui qu'on veut
    4)Nom de l'expéditeur : celui qu'on veut
    5)Login et mot de passe : en général il s'agit de son adresse internet via son fai ainsi que son mot de passe pour se connecter à internet via son FAI.

    Je ne répondrai plus à ce type de question en mp : le principe est le meme de ce point de vue la que pour Indy.

    L'exmple donné n'est pas tres "souple" : il a juste un but didactique.

  • signaler à un administrateur
    Commentaire de Francky23012301 le 01/05/2007 17:20:47

    Ah oui juste : avantage aussi ca permet d'apprendre un peu les RFC du protocole SMTP : alors qu'avec Indy va y comprendre quelque chose vu le labyrinthe ;).

  • signaler à un administrateur
    Commentaire de DelphiCool le 01/05/2007 18:19:39 administrateur CS

    Salut,

    Choette ton compo,

    Par contre dans ton code, ajoute dans le bouton envoyer :
    SMTPMess.Attachments.Clear;
    SMTPMess.Bodies.Clear;


    sinon si tu envois deux fois de suite un mail, le message n'est pas vidé.

    ce qui fait que tu as deux mail mais le deuxieme a un contenu doublé.

  • signaler à un administrateur
    Commentaire de Sylfelin le 02/05/2007 07:47:00

    Bonjour,

    Il y avait aussi, en plus de Indy et ICS, Synapse sur http://synapse.ararat.cz qui fonctionne très bien et qui n'est aussi qu'une grosse librairie mail et ftp avec un forum utilisateur sur http://sourceforge.net/mailarchive/forum.php?forum_name=synalist-public.

  • signaler à un administrateur
    Commentaire de cantador le 03/05/2007 15:53:06

    merci Francky23012301 pour les explications et bcp de points sont intéressants.
    reste le baptême du feu..
    @+

  • signaler à un administrateur
    Commentaire de sivaller le 31/10/2007 22:09:18

    Faut enlever le champ date:
    //add('Date: ' + DateToStr(FDate) + CRLF);
    et ça n'affiche plus 0:00 mais l'heure

  • signaler à un administrateur
    Commentaire de alll le 01/02/2008 18:18:32

    moi je trouve ce code suuuuuuuuuuuuper au poil sa s'adapte bien et surtout sa bug pas a tous va elle est tres fonctionnel sur le test que j'ai realiser avec ce code integre a mon source pour faire un essais bravoooooooooooooooo
    moi j'essai de trouver une soluce pour envoyer une form avec des edit et des label en 2d
    transformer une form complete avec ses composants en page ou en image je cherche avec form print pour emailler dans outlook pour que mon corespondant puisse imprimer mafiche.prn que je lui envoie dans outlook
    connaisser vous une soluce
    ps) je suis novice en delphi merci de votre compreention

Ajouter un commentaire

Discussions en rapport avec ce code source

Pub



Appels d'offres

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS