Envoi de mail anonyme (sans composant, ni dll)

Soyez le premier à donner votre avis sur cette source.

Vue 75 515 fois - Téléchargée 3 224 fois

Cette source est considérée comme dangereuse, elle a néamoins été gardée dans un but pédagogique :
Cette source est considérée comme dangereuse, elle a néamoins été gardée dans un but pédagogique.

Description

Donc comme sont nom l'indique ce programme permet d'envoyer des mails de façon anonyme, en se connectant directment à un serveur SMTP à l'aide d'une socket.

Utilisation et Explication :
----------------------------

Pour l'utilisation de ce soft, c'est trivial, il suffit de remplir les champs demandés...

Par contre un fichier est requis, dans cette archive il est nommé "mail.txt" et il contient la trame SMTP qui sera envoyé au serveur.

Pour pouvoir envoyer votre mail, votre message devra être intégré à cette trame, c'est le logiciel qui le fait pour vous, mais çà sera à vous de lui dire à quel endroit,
pour celà il y à deux balise :

la balise #TEXT qui permet d'inserer votre message dans la trame à l'endroit dit et la balise #HTML qui fait la même chose mais convertie votre message au format HTML, si la trame
est au format HTML.

NB : Pour insérer des commentaires dans le fichier trame,
mettez un "!" devant la ligne.

Pourquoi ? parce qu'une trame externe permet d'adapté le
courrier au type de serveur auquel vous vous adressé, et
permet de personalisé votre configuration sans avoir à
modifier le programme.

Donc votre message ne doit donc pas être mis dans le fichier trame, mais tapé dans le programme à l'endroit dit, mais
mettez bien dans le fichier de trame la balise #TEXT ou #HTML
(selon format) à l'endroit où devra être placé votre message.

Pour définir ce fichier dans le programme il suffit de mettre
le chemin du fichier trame dans le champ : "Fichier Trame".

Le Zip :
--------
Le zip contient :
- les sources du programme bien evidemment.
- Un fichier mail.txt (important) qui sera la trame SMTP.
- Un fichier lisezmoi.txt qui recapitule tous çà.
- Et deux fichier .reg qui sont des préconfigurations pour les NewB!

PS : Par contre, je ne fourni pas l'exe !

Attention :
-----------

- NB : Comme à l'habitude j'informe à tous que ce programme à été conçu afin de partager des connaissances et non pas d'en abuser pour faire des conneries.
Je dégage toute responsabilité quant à son utilisation.

Source / Exemple :


{  **************************************************************
 .
/!\  Cette source est plus ancienne que le contenu du zip !

                                                                                                                            • }
unit ElgMail; interface uses Windows, Classes, SysUtils, ScktComp, StdCtrls, Math; type EtatConnect = ( helo, mailto, rcptto, data, trame, quit, sckclose ); type TElgAnonyme = class( TClientSocket ) private sEmetteur : string; sDestinataire : string; sLabelEmetteur : string; sLabelDestinataire : string; sSujet : string; sMessage : TStrings; HTMLFormat : boolean; ServeurSMTP : string; Instance : EtatConnect; Terminer : boolean; Debbuger : TCustomMemo; function AutoIP : string; public constructor Create( sServeur : string ); overload; constructor Create( sServeur : string; iPort : Integer ); overload; property AdresseDestinataire : string write sDestinataire; property AdresseEmetteur : string write sEmetteur; property NomDestinataire : string write sLabelDestinataire; property NomEmetteur : string write sLabelEmetteur; property Sujet : string write sSujet; property Mail : TStrings write sMessage; property FormatHTML : boolean write HTMLFormat; property Terminated : boolean read Terminer; procedure ClientRead( Sender: TObject; Socket: TCustomWinSocket ); procedure ClientWrite( Sender: TObject; Socket: TCustomWinSocket ); procedure ClientConnect( Sender: TObject; Socket: TCustomWinSocket ); procedure ClientDisconnect( Sender: TObject; Socket: TCustomWinSocket ); procedure ClientError( Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer ); procedure AssignToDebug( MemoDebug : TCustomMemo ); procedure Envoyer; end; const PORT_SMTP = 25; CRLF = #13#10; CR = #13; LF = #10; implementation constructor TElgAnonyme.Create( sServeur : string ); begin inherited Create(nil); OnConnect := ClientConnect; OnDisconnect := ClientDisconnect; OnError := ClientError; OnRead := ClientRead; OnWrite := ClientWrite; Port := PORT_SMTP; Host := sServeur; ServeurSMTP := sServeur; Instance := helo; Terminer := False; end; constructor TElgAnonyme.Create( sServeur : string; iPort : Integer ); begin inherited Create(nil); Self.OnConnect := ClientConnect; Self.OnDisconnect := ClientDisconnect; Self.OnError := ClientError; Self.OnRead := ClientRead; Port := iPort; Host := sServeur; ServeurSMTP := sServeur; Instance := helo; Terminer := False; end; procedure TElgAnonyme.AssignToDebug( MemoDebug : TCustomMemo ); begin Debbuger := MemoDebug; end; procedure TElgAnonyme.Envoyer(); begin if ( ( Trim( sEmetteur ) = '' ) or ( Trim( sDestinataire ) = '' ) ) then Exit; Open; end; procedure TElgAnonyme.ClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin Terminer := False; Debbuger.Lines.Add( 'SOCKET > Connection établie' ); end; procedure TElgAnonyme.ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); begin Terminer := True; Debbuger.Lines.Add( 'SOCKET > Connection terminée' ); end; procedure TElgAnonyme.ClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer); var ErrorMessage : String; begin Debbuger.Lines.Add('ERREUR > Connexion impossible'); Close; Terminer := True; end; procedure TElgAnonyme.ClientRead( Sender: TObject; Socket: TCustomWinSocket ); var ServeurReponse : string; MessageLine : Integer; begin ServeurReponse := Socket.ReceiveText; Debbuger.Lines.Add('Serveur > ' + ServeurReponse ); if ( (Copy(ServeurReponse, 1, 1) = '2') or (Copy(ServeurReponse, 1, 1) = '3') ) then begin case ( Instance ) of helo : Socket.SendText('EHLO ' + ServeurSMTP + CRLF); mailto : Socket.SendText('MAIL FROM:<' + sEmetteur + '>' + CRLF); rcptto : Socket.SendText('RCPT TO:<' + sDestinataire + '>' + CRLF); data : Socket.SendText('DATA' + CRLF); trame : begin Socket.SendText('Return-Path: <' + sEmetteur + '>' + LF); Socket.SendText('Delivered-To: online.fr-' + sDestinataire + LF); Socket.SendText('X-Originating-IP: [' + AutoIP + ']' + LF); Socket.SendText('X-Originating-Email: [' + sEmetteur + ']' + LF); Socket.SendText('X-Sender: ' + sEmetteur + LF); Socket.SendText('Subject: ' + sSujet + LF); Socket.SendText('From: "' + sLabelEmetteur + '" ' + '<' + sEmetteur + '>' + LF); Socket.SendText('To: "' + sLabelDestinataire + '" ' + '<' + sDestinataire + '>' + LF); Socket.SendText('Bcc:' + LF); Socket.SendText('Date: ' + DateToStr(Date) + LF); Socket.SendText('Mime-Version: 1.0' + LF); if ( HTMLFormat ) then begin Socket.SendText('Content-Type: text/html; charset=iso-8859-1; format=flowed' + LF); Socket.SendText('<html><body><div>' + LF); for MessageLine := 0 to (sMessage.Count -1) do Socket.SendText( '<font>' + sMessage.Strings[MessageLine] + '</font>' + LF); Socket.SendText('</div></body></html>' + LF); end else begin Socket.SendText('Content-Type: text/plain; charset=ISO-8859-1' + LF ); for MessageLine := 0 to (sMessage.Count -1) do Socket.SendText( sMessage.Strings[MessageLine] + LF); end; Socket.SendText( CRLF + '.' + CRLF ); end; quit : Socket.SendText('QUIT' + CRLF); sckclose: Close; end; Inc(Instance); end else begin Socket.SendText('QUIT' + CRLF); Socket.Close; Terminer := True; end; end; function TElgAnonyme.AutoIP : string; begin Randomize; Result := IntToStr(RandomRange(11, 200)) + '.' + IntToStr(RandomRange(11, 200)) + '.' + IntToStr(RandomRange(11, 200)) + '.' + IntToStr(RandomRange(11, 200)); end; end.

Conclusion :


Le code ci-dessus est une ancienne version, pour avoir le code mis à jour et commenté, telechargez le zip !

Et oubliez pas la note svp !!!

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
13
Date d'inscription
dimanche 26 janvier 2003
Statut
Membre
Dernière intervention
31 août 2011

Ce progamme fonctionne.
Attention cependant a ne pas utiliser de VPN ou de proxy , ca ne marchera pas avec (pourquoi ????)
J'utilise le SMTP de mon fournisseur d'acces et ca fonctionne très bien ; mais faites bien attention car le message recu risque fort d'être mis dans les couriers indesirables!

JE CONFIRME ? CA MARCHE TRES BIEN.
Messages postés
14
Date d'inscription
jeudi 19 mai 2005
Statut
Membre
Dernière intervention
30 décembre 2006

Pour ce qui est de l'anonymat votre adresse ip est stockées dans les logs du serveur smtp.

Pour ce qui est du choix du serveur smtp il faut savoir que pas mal ont des restrictions en termes d'identification tout d'abord voire en terme de temps (temps limite sur certain serveurs via l'utilisation de telnet par exemple).

Une adresse de serveur smtp en vrac : mail.hotmail.com
Messages postés
718
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
22 novembre 2016
3
oui et ce que je voulais montrer dans ce code c'est l'implémentation de la socket : quelle soit autonome et reponde en fonction des messages reçus, qu'elles se stoppe automatiquement en cas d'erreur sans planter, etc.. :-D ... Envoyer des mails pourris çà on s'en fou, un telnet (client socket) suffit !
Messages postés
34
Date d'inscription
samedi 14 juin 2003
Statut
Membre
Dernière intervention
27 janvier 2007

@costello
c'est un peu la meme chose que de se faire un compte mail "bidon", yen a beaucoup qui le font pourtant ya pas de quoi fouetter un chat
Messages postés
718
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
22 novembre 2016
3
Ah ba voila .. c'est mieux :-)
Afficher les 33 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.