well i was able to, using socket after searching on google thanks to google for the insight, am new to perl i was sure it's possible cos this happen in php
#!/usr/bin/perl -w
use strict;
use IO::Socket::INET;
use MIME::Base64;
my $cr = pack('H*','0D');
my $lf = pack('H*','0A');
#following http://www.perlmonks.org/bare/?node_id=316023
# see RFC 821 http://www.ietf.org/rfc/rfc0821.txt
my($username) = 'email';
my($password) = 'password';
my($from) = 'email';
my($from_name) = 'name';
my($to) = 'email to send to';
my($to_name) = 'name';
my($subject) = 'Test';
my($body) = "Test Line One.\nTest Line Two.\n";
my $server = 'smtp.server.ex'; # SMTP SERVER
my $port = 587; #
my $timeout = 10;
my $sock = IO::Socket::INET->new( PeerAddr => $server,
PeerPort => $port,
Proto => 'tcp',
Timeout => $timeout,
);
unless ( $sock ) {
die"ERR - Could not connect socket to $server on port $port";
}
if ( my $server = <$sock>) {
print "Got Handshake: $server";
dialog( $sock, "EHLO local $cr$lf");
dialog( $sock, "AUTH LOGIN $cr$lf");
dialog( $sock, encode_base64($username));
dialog( $sock, encode_base64($password));
dialog( $sock, "MAIL FROM: <$from>$cr$lf");
dialog( $sock, "RCPT TO: <$to>$cr$lf");
dialog( $sock, "DATA $cr$lf");
dialog( $sock, "To: $to_name<$to>\r\nMIME-Version: 1.0\r\nContent-Ty
+pe: text/plain; charset=utf-8\n$cr$lf");
dialog( $sock, "From: $from_name<$from>$cr$lf");
dialog( $sock, "Subject: $subject $cr$lf\r\n");
dialog( $sock, "$body $cr$lf");
dialog( $sock, ".$cr$lf");
dialog( $sock, "QUIT $cr$lf");
}
else {
die "No handshake sent from SMTP server\n"
}
sub dialog {
my ( $sock, $send ) = @_;
print $sock $send;
print "Sent: $send";
my $receive = <$sock>;
die "Got no response to $send" unless $receive;
print "Recv: $receive";
}
|