rendered paste body
on 2000:text:!sendmail*:*: {
// Mmmm... Regex: Comprobar si la dire es valida :-)
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 esta 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.*
}