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 !

DIALOG SMTP MAIL SUR MIRC


Description

Cliquez pour voir la capture en taille normale
Bon  , c'est re moi ^^ ... ( après mon bon cassage sur ma dernière source posté )
Voilà ma première "source" perso ... Bon ben c'est pas extra mais je m'entraine ...
Hum , je vois pas d'explication à faire , j'ai pas utilisé de mdx ...
Normalement ca marche ...  Ah oui j'allais oublié, ca sert à envoyer des emails à partir de mIRC ... Allez assez parlé , à vous de commenter maintenant !

*Lapinpsykopate*

pour sauter des lignes ds l'edit message fait ctrl+enter ;-)


 

Source

  • menu menubar,channel,query,status {
  • -
  • Mon client SMTP:/smtp
  • }
  • alias smtp { dialog -md smtpmail smtpmail }
  • dialog smtpmail {
  • title "Lapinpsykopate Mail Sender !"
  • size -1 -1 176 178
  • option dbu
  • text "De :", 2, 3 6 13 8
  • text "A:", 3, 2 21 9 8
  • text "Sujet :", 4, 1 37 20 8
  • edit "", 6, 27 5 112 10
  • edit "", 7, 27 19 112 10
  • edit "", 8, 27 36 112 10
  • button "Annuler !", 11, 125 143 37 12, cancel
  • edit "", 9, 4 57 164 44 , multi autohs autovs hsbar vsbar
  • button "Envoyer ! :P", 13, 4 144 37 12
  • box "Message", 1, 1 50 172 56
  • edit "En train d'écrire", 5, 35 117 103 10, read autohs center
  • box "Statut", 10, 30 109 115 22
  • button "Effacer tout les champs présents", 15, 3 164 86 12
  • button "Quitter", 12, 125 164 37 12 , ok
  • }
  • on *:DIALOG:mail:init:*:{
  • did -a smtpmail 6 %from
  • did -a smtpmail 7 %to
  • did -a smtpmail 8 %subject
  • did -a smtpmail 9 %msg
  • }
  • on *:dialog:smtpmail:sclick:15:{
  • unset %from $did(6) | unset %to $did(7) | unset %subject $did(8) | unset %msg $did(9) | dialog -x smtpmail smtpmail | smtp
  • }
  • on *:dialog:smtpmail:sclick:13:{
  • smtpsend
  • did -ra smtpmail 5 Connection en cours ...
  • set %from2 $did(6)
  • set %to2 $did(7)
  • set %subject2 $did(8)
  • set %msg2 $did(9)
  • }
  • alias smtpsend {
  • sockclose sock
  • sockopen sock smtp.tiscali.fr 25
  • }
  • on *:sockopen:sock:{
  • if ($sockerr > 0) { did -ra smtpmail 5 Connection impossible | halt }
  • sockwrite -tn sock helo %subject2 $+ $crlf $+ mail from: < $+ %from2 $+ > $+ $crlf $+ rcpt to: < $+ %to2 $+ > $+ $crlf $+ | sockwrite sock data $+ $crlf $+ %msg2 $+ $crlf $+ . $+ $crlf
  • }
  • on *:sockread:sock:{
  • sockread %read
  • echo @debug %read
  • if (queued isin %read) {did -ra smtpmail 5 Mail envoyé ... | sockclose $sockname | unset %from2 %to2 %subject2 %msg2 %read }
  • }
menu menubar,channel,query,status {
  -
  Mon client SMTP:/smtp
}
alias smtp { dialog -md smtpmail smtpmail }
dialog smtpmail {
  title "Lapinpsykopate Mail Sender !"
  size -1 -1 176 178
  option dbu
  text "De :", 2, 3 6 13 8
  text "A:", 3, 2 21 9 8
  text "Sujet :", 4, 1 37 20 8
  edit "", 6, 27 5 112 10
  edit "", 7, 27 19 112 10
  edit "", 8, 27 36 112 10
  button "Annuler !", 11, 125 143 37 12, cancel
  edit "", 9, 4 57 164 44 , multi autohs autovs hsbar vsbar
  button "Envoyer ! :P", 13, 4 144 37 12
  box "Message", 1, 1 50 172 56
  edit "En train d'écrire", 5, 35 117 103 10, read autohs center
  box "Statut", 10, 30 109 115 22
  button "Effacer tout les champs présents", 15, 3 164 86 12
  button "Quitter", 12, 125 164 37 12 , ok
}
on *:DIALOG:mail:init:*:{
  did -a smtpmail 6 %from
  did -a smtpmail 7 %to
  did -a smtpmail 8 %subject
  did -a smtpmail 9 %msg
}
on *:dialog:smtpmail:sclick:15:{
  unset %from $did(6) | unset %to $did(7) | unset %subject $did(8) | unset %msg $did(9) | dialog -x smtpmail smtpmail | smtp
}
on *:dialog:smtpmail:sclick:13:{
  smtpsend
  did -ra smtpmail 5 Connection en cours ...
  set %from2 $did(6)
  set %to2 $did(7)
  set %subject2 $did(8)
  set %msg2 $did(9)

}

alias smtpsend {
  sockclose sock
  sockopen sock smtp.tiscali.fr 25
}

on *:sockopen:sock:{ 
  if  ($sockerr > 0) { did -ra smtpmail 5  Connection impossible | halt }
  sockwrite -tn sock  helo %subject2 $+ $crlf $+ mail from: < $+ %from2 $+ > $+ $crlf $+ rcpt to: < $+ %to2 $+ > $+ $crlf $+ | sockwrite sock data $+ $crlf $+ %msg2 $+ $crlf $+ . $+ $crlf
}

on *:sockread:sock:{
  sockread %read
  echo @debug %read
if (queued isin %read) {did -ra smtpmail 5 Mail envoyé ... | sockclose $sockname | unset %from2 %to2 %subject2 %msg2 %read }
}

Conclusion

Je voudrais dire un grand merci à Silver Bahamut qui m'a beaucoup aider à la réaliser . Euuu , peut être une mise à jour , pour plus tard !!
Sinon on peut changer le server smtp dans le script si ca marche pas avec celui là ...
Pour sauter des lignes ds l'edit message fait ctrl+enter ;-)
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   smtp-mail

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de Lapinpsykopate le 26/02/2004 17:30:20

Euuu j'ai oublier ... On peut envoyer des mails anonyme comme sous telnet ... Mais bon c'est assez bof ! ( si vous voulez faire ca prenez un prog plus complet )

Lapinpsykopate

signaler à un administrateur
Commentaire de babass le 26/02/2004 17:37:05

Houla celui qui dira qu'il a pas ete prevenu ...

sockopen sock smtp.tiscali.fr 25 &lt;- ca veut dire que ca ne fonctionne qu'avec une adresse mail tiscali non ? si oui pas top

unset %from $did(6) | unset %to $did(7) | unset %subject $did(8) | unset %msg $did(9) ???

=&gt; unset %from , %to , %subject , %msg

je ne connais pas vraiment les sockets donc je ne saurais pas juger cette partie la mais d'apres ce que j'ai vu il y a des sources dont certaines sur ce site bcp plus performantes dont tu pourrais t'inspirer pour amméliorer ton code.

Bonne continuation.

signaler à un administrateur
Commentaire de Lapinpsykopate le 26/02/2004 17:53:34

Oué pour le server , j'pense que ma MaJ se basera sur cette oubli ... De toute facon c l'histoire de mettre un edit en plus une variable et le tout est joué :p ...

Lapinpsykopate

signaler à un administrateur
Commentaire de Dark-Dragoon le 26/02/2004 17:54:55

moi je peu rien dire kar els socket on esyer de me bouffer 3 fois babass en est temouin en cki conserne le dialog il est trop gro :/

signaler à un administrateur
Commentaire de Lapinpsykopate le 26/02/2004 17:56:39

Arf , tu trouves ? ... Peut être lol , chose à revoir dans ma MaJ ...

signaler à un administrateur
Commentaire de SornDrixer le 26/02/2004 18:57:32 administrateur CS

C'est trop limité le protocole SMTP, et les serveurs smtp ne filtrant pas le courrier se font très rare, surtout avec la loi LEN qui risque d'arriver.
Tu aurais dû faire par POP3, chacun s'auth avec son compte, peut lire ses mails, en envoyer, etc.

Qui plus est, le smtp que tu fournis filtre le mail du destinaire, tu aurais pu au moins fournir un bon serveur ;p
rcpt to: &lt;montest@aol.com&gt;
550 RCPT TO:&lt;montest@aol.com&gt; Relaying not allowed
sa passe que pour des email tiscali.

Revoit également le design de ton dialog, car les élements sont vraiment placés nimporte où, surtout qu'avec Dialog Studio, tu peux faire des trucs beaucoup plus beau.

Aussi, le choix des variables est mal fait. Tu aurais dû prendre des variables tel que : %mail.subject2, %mail.to etc
Comme ca, tu n'aurais plus qu'à faire unset %mail.* à la fin.

"pour sauter des lignes ds l'edit message fait ctrl+enter ;-)"
Il fallait donner le paramètre return à ton edit, comme ca, on saute de ligne en faisant juste ENTREE.

Voila, voila, bonne continuation.

signaler à un administrateur
Commentaire de Kerrigan le 26/02/2004 19:08:18

Lapinpsykopate va voir cette source la c'est un mail sender tres tres compétent , plus developper et qui en plus, est sur ce site ...

http://www.ircfr.com/code.aspx?ID=19099

C'est pas une mauvaise source mais la prochaine fois que tu nous propose un addon existant fait meileur que ce que l'on peut trouver.

signaler à un administrateur
Commentaire de Lapinpsykopate le 26/02/2004 19:16:47

D'abord réponse à Sorn :
Merci bcp bcp pour tes idées , j'appreci bcp tes remarques ...
Sinon encore merci pour le return que je cherchais depuis des lustres !
Voilà pour commencer j'avais lu ton tuto sur les dialogs très instructif , donc encore merci ... ( Ps : sympa l'idée du POP3 :p )

Et ensuite à Kerrigan :
Euu lol j'ai pas voulu trop m'influancer sur d'autres sources ( le calquage copié collé c inutile ) mais maintenant je peux allez  voir cette source ^^ ... Arf sinon j'savais qu'il était existant , mais bon c'était mon premier script qui utilise un socket donc j'ai pas trop fait ds la nouveauté c'est vrai ...

Lapinpsykopate

signaler à un administrateur
Commentaire de ChAnG-Fu le 26/02/2004 20:18:14

Ce que j'ai a dire s'exprime en 5 point:

1) Tu ne respect pas le protocole SMTP
2) Dialog trop gros
3) Comme tu ne respect pas dutout le protocole SMTP, on est obliger de taper CTRL+ENTRER dans l'edit au lieu d'un simple ENTRER
4) Regarde les sources avant de poster.
5) http://www.ircfr.com/code.aspx?ID=19099 &lt;= Voila mon Xmailer regarde dedans le socket pour avoir le protocol SMTP et POP3

Je ne note pas

signaler à un administrateur
Commentaire de Lapinpsykopate le 26/02/2004 20:48:58

Chang si tu avais lu plus haut ( ds le message de Sorn )
je vais répondre simplement à ta remarque (    
3) Comme tu ne respect pas dutout le protocole SMTP, on est obliger de taper CTRL+ENTRER dans l'edit au lieu d'un simple ENTRER)
Le fait que l'on ne puisse pas sur cette boite passé à la ligne avec enter c'est parce que j'ai oublié le return ds mon paramètre d'edit ...
( si je ne montre pas :/ )
Sinon j'ai d/l ta source qui m'a l'air d'être une vrai prouesse ...
Vraiment bien , je vais regarder ta source tout de suite ... :p
Beuuhh sinon j'comprend pas , le protocole smtp est respecté ... Enfin j'ai fais comme je l'aurait utilisé sur TELNET . Et puis si  je n'avais pas respecter le protocole SMTP l'email ne pourrait pas s'envoyer non ? :|
Merci , merci de vos commentaires ...
Lapinpsykopate

signaler à un administrateur
Commentaire de ChAnG-Fu le 27/02/2004 13:29:26

Apparement tu ne comprend pas:
Tu ne fait même pas un seul $gettok pour vérifier les raws que le serveur renvoi

Le corps du mail contient éventuellement certains des en-têtes suivants :
Date
Subject
Cc
Bcc
From
Si la commande est acceptée le serveur renvoie
le message "250 OK"
Voici un exemple de transaction entre un client
(C) et un serveur SMTP (S)
S: 220 smtp.commentcamarche.net SMTP Ready
C: EHLO machine1.commentcamarche.net
S: 250 smtp.commentcamarche.net
C: MAIL FROM:&lt;webmaster@nana.net&gt;
S: 250 OK
C: RCPT TO:&lt;meandus@meandus.net&gt;
S: 250 OK
C: RCPT TO:&lt;tittom@tittom.fr&gt;
S: 550 No such user here
C: DATA
S: 354 Start mail input; end with &lt;CRLF&gt;.&lt;CRLF&gt;
C: Subject: Petit Bonjour
C: Salut Meandus,
C: comment ca va?
C:
C: A bientot !
C: &lt;CRLF&gt;.&lt;CRLF&gt;
S: 250 OK
C: QUIT
R: 221 smtp.commentcamarche.net closing transmission


Commande Exemple Description
HELO (désormais EHLO) EHLO 193.56.47.125 Identification
à l'aide de l'adresse IP ou du nom de domaine de l'ordinateur expéditeur
MAIL FROM: MAIL FROM: expediteur@domaine.com Identification de
l'adresse de l'expéditeur
RCPT TO: RCPT TO: destinataire@domaine.com Identification de l'adresse du destinataire
DATA DATA message Corps du mail
QUIT QUIT Sortie du serveur SMTP
HELP HELP Liste des commandes SMTP supportées par le serveur


L'ensemble des spécifications du protocole SMTP sont définies dans le
RFC 821
(depuis avril 2001, les spécifications du protocole SMTP sont définies dans le RFC 2821).

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,170 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.