Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: help on socket to smtp on TLS/SSL

by Corion (Patriarch)
on Jul 19, 2014 at 13:57 UTC ( [id://1094301]=note: print w/replies, xml ) Need Help??


in reply to help on socket to smtp on TLS/SSL

Why don't you use an established module like MIME::Lite, or find out how MIME::Lite does sending via Gmail?

Personally, I would try the approach outlined in Re^2: Mime::Lite and SMTP authentication?.

Replies are listed 'Best First'.
Re^2: help on socket to smtp on TLS/SSL
by beanscake (Acolyte) on Jul 20, 2014 at 22:18 UTC

    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"; }

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1094301]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (4)
As of 2024-04-24 04:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found