use strict; use vars qw($VERSION %IRSSI); use POSIX; use Irssi; $VERSION = '0.0.3'; %IRSSI = ( authors => 'karen chan', contact => 'karen@karen-chan.com', name => 'mail_message', description => 'Sends you an email when you get a message', url => '', license => '', changed => '', ); my $my_email_address = 'karen@karen-chan.com'; my $my_nick = 'karen'; my %from_addresses = ( 'karen' => 'karen@karen-chan.com', 'example' => 'example@example.com', ); my $cmd = "echo \"%s\" | mail %s -s 'irc message' $my_email_address"; sub receive_message { my ($server, $msg, $nick, $address, $target) = @_; chomp($msg); if (!$server->{usermode_away}) { return; } if ($target && $msg !~ /$my_nick/) { return; } my $reply_to = ''; if (exists $from_addresses{$nick}) { $reply_to = "-a 'From: $nick <$from_addresses{$nick}>'"; } if ($target) { $msg = "<$nick, $target> $msg"; } else { $msg = "<$nick> $msg"; } $msg =~ s/"/"'"'"/g; chomp($msg); my $mail = sprintf($cmd, $msg, $reply_to); `$mail`; } Irssi::signal_add({ 'message public' => \&receive_message, 'message private' => \&receive_message, });