Using a regex probably does it for you. Matching the parenthasised stuff ("(Deferred: ...)") may be problematic if nested parenthesis are allowed. That aside, the following should get you started:
use warnings;
use strict;
my $str = 'k4J37P420342 3256 10021545 May 18 23:07 MAILER-DAEMON
+ (Deferred: Connection reset by somdomain.com.) <someone@somedomain.c
+om>';
my ($code, $addr) = $str =~ /(\S+)(?:[^)]*)\)\s*<([^>]+)/;
print "$code $addr\n" if defined $addr;
Prints:
k4J37P420342 someone@somedomain.com
DWIM is Perl's answer to Gödel