on 2000:text:!sendmail*:*: { // Mmmm... Regex: Comprobar si la dire es válida :-) if (!$regex($2,[A-Za-z0-9._%-]+@[A-Za-z0-9._%-]+\.[A-Za-z])) { .msg $chan Dirección de correo electrónico no válida. halt } // Canal o privado ? if ( $chan ) { set %mail.dest $chan } else { set %mail.dest $nick } // Se está enviando algo ya ? if ( %mail.active ) { .msg %mail.dest Ya hay un envío de correo en curso. | halt } // Ok, let's do it set %mail.from $nick $+ @ $+ $remove($chan,$chr(35)) $+ .irc set %mail.server $smtp.server set %mail.subject Mensaje de $nick desde el canal $chan de $server set %mail.sender $nick set %mail.rcpt $2 set %mail.delay 1 set %mail.active 1 // Pidamos el mensaje. .msg %mail.dest Puedes empezar a escribir el mensaje... .msg %mail.dest Escribe "fin" para enviarlo. // Activemos el hook. .enable #mail } // Hook para fin. #mail off on 2000:text:*:*: { if ( $nick == %mail.sender ) { if ( $1 == fin ) { .disable #mail | sendmail } else { set %mail.data %mail.data $+ $1- $+ $crlf } } } #mail end // Enviemos el correo por SMTP al llegar al hook. :-) alias sendmail { .msg %mail.dest Ok, enviando el mensaje al destinatario... .sockclose sendmail .sockopen sendmail %mail.server 25 .timer 1 %mail.delay sockwrite -n sendmail helo | inc %mail.delay 2 .timer 1 %mail.delay sockwrite -n sendmail mail from: %mail.from | inc %mail.delay 2 .timer 1 %mail.delay sockwrite -n sendmail rcpt to: %mail.rcpt | inc %mail.delay 2 .timer 1 %mail.delay sockwrite -n sendmail data | inc %mail.delay 2 .timer 1 %mail.delay sockwrite -n sendmail Subject: %mail.subject | inc %mail.delay 2 .timer 1 %mail.delay sockwrite -n sendmail | inc %mail.delay 2 .timer 1 %mail.delay sockwrite -n sendmail %mail.data | inc %mail.delay 2 .timer 1 %mail.delay sockwrite -n sendmail . | inc %mail.delay 2 .timer 1 %mail.delay sockwrite -n sendmail quit | inc %mail.delay 2 .timer 1 %mail.delay .msg %mail.dest El mensaje de correo fue enviado correctamente. .unset %mail.* }