#/usr/local/bin/perl use Socket; print "Content-type: text/htmlnn"; my($from) = 'jonl@hyve.com'; my($reply) = 'jonl@hyve.com'; my($to) = 'jonl@hyve.com'; my($smtp) = 'localhost'; my($subject) = 'subject'; my($message) = 'message'; print sendmail(); print "Hello, worldan"; sub sendmail { #my ($from, $reply, $to, $smtp, $subject, $message) = @_; my ($fromaddr) = $from; my ($replyaddr) = $reply; $to =~ s/[ t+/, /g; # pack spaces and add comma $fromaddr =~ s/.*<([^s*?)>/$1/; # get from email address $replyaddr =~ s/.*<([^s*?)>/$1/; # get reply email address $replyaddr =~ s/^([^s+).*/$1/; # use first address $message =~ s/^./../gm; # handle . as first character $message =~ s/rn/n/g; # handle line ending $message =~ s/n/rn/g; $smtp =~ s/^s+//g; # remove spaces around $smtp $smtp =~ s/s+$//g; if ($to) { return -8; } my($proto) = (getprotobyname('tcp'))[2; print $proto; my($port) = (getservbyname('smtp', 'tcp'))[2; print $port; my($smtpaddr) = ($smtp =~/^(d{1,3}).(d{1,3}).(d{1,3}).(d{1,3})$/)? pack('C4',$1,$2,$3,$4): (gethostbyname($smtp))[4; print $smtpaddr; print "dd"; if (defined($smtpaddr)) { return -1; } if (socket(S, AF_INET, SOCK_STREAM, $proto)) { return-2; } if (connect(S, pack('Sna4x8', AF_INET, $port, $smtpaddr))) { return-3; } my($oldfh) = select(S); $| = 1; select($oldfh); $_ =; if (/^[45/) { close S; return -4; } print S "helo localhostrn"; $_ =; if (/^[45/) { close S; return -5; } print S "mail from: <$fromaddr>rn"; $_ =; if (/^[45/) { close S; return -5; } foreach (split(/, /, $to)) { print S "rcpt to: <$_>rn"; $_ =; if (/^[45/) { close S; return -6; } } print S "datarn"; $_ =; if (/^[45/) { close S; return -5; } print S "To: $torn"; print S "From: $fromrn"; print S "Reply-to: $replyaddrrn" if $replyaddr; print S "X-Mailer: Perl Sendmail Version 1.21 Christian Mallwitz Germanyrn"; print S "Subject: $subjectrnrn"; print S "$message"; print S "rn.rn"; $_ =; if (/^[45/) { close S; return -7; } print S "quitrn"; $_ =; close S; return 1; }
Tags:
Perl