Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 2 of 2

Thread: turn on debug

  1. #1
    New to the CF scene
    Join Date
    Feb 2011
    Posts
    3
    Thanks
    0
    Thanked 0 Times in 0 Posts

    turn on debug

    I use below PERL code , how can I turn no debug on fucntion sendSMTP.
    What is fucntion for var $debug ???
    Code:
    #!/usr/bin/perl -w
    
    use Socket;
    use strict;
    
    my($mailTo)     = 'chuikingman@yahoo.com.hk';
    my($mailServer) = 'mail.hgcbroadband.com';
    
    my($mailFrom)   = 'medined@mtolive.com';
    my($realName)   = "chuikingman";
    my($subject)    = 'Test send_mail';
    my($body)       = "Test Line One.\nTest Line Two.\n";
    
    $main::SIG{'INT'} = 'closeSocket';
    
    my($proto)      = getprotobyname("tcp")        || 6;
    my($port)       = getservbyname("SMTP", "tcp") || 25;
    my($serverAddr) = (gethostbyname($mailServer))[4];
    
    die('gethostbyname failed.') unless (defined($serverAddr));
    
    socket(SMTP, AF_INET(), SOCK_STREAM(), $proto)
        or die("socket: $!");
    
     my $packFormat;
    $packFormat = 'S n a4 x8';   # Windows 95, SunOs 4.1+
    #$packFormat = 'S n c4 x8';   # SunOs 5.4+ (Solaris 2)
    
    connect(SMTP, pack($packFormat, AF_INET(), $port, $serverAddr))
        or die("connect: $!");
    
    select(SMTP); $| = 1; select(STDOUT);    # use unbuffered i/o.
    
    {
        my($inpBuf) = '';
    
        recv(SMTP, $inpBuf, 200, 0);
        recv(SMTP, $inpBuf, 200, 0);
    }
    my $debug = 1 ;
    sendSMTP(1, "HELO\n");
    sendSMTP(1, "MAIL From: <$mailFrom>\n");
    sendSMTP(1, "RCPT To: <$mailTo>\n");
    sendSMTP(1, "DATA\n");
    
    send(SMTP, "From: $realName\n", 0);
    send(SMTP, "Subject: $subject\n", 0);
    send(SMTP, $body, 0);
    
    sendSMTP(1, "\r\n.\r\n");
    sendSMTP(1, "QUIT\n");
    
    close(SMTP);
    
    sub closeSocket {     # close smtp socket on error
        close(SMTP);
        die("SMTP socket closed due to SIGINT\n");
    }
    
    sub sendSMTP {
        my($debug)  = shift;
        #my($debug)  = 1;
        my($buffer) = @_;
    
        print STDERR ("> $buffer") if $debug;
        send(SMTP, $buffer, 0);
    
        recv(SMTP, $buffer, 200, 0);
        print STDERR ("< $buffer") if $debug;
    
        return( (split(/ /, $buffer))[0] );
    }

  • #2
    Master Coder
    Join Date
    Dec 2007
    Posts
    6,682
    Thanks
    436
    Thanked 890 Times in 879 Posts
    Quote Originally Posted by abcdef View Post
    I use below PERL code , how can I turn no debug on fucntion sendSMTP.
    What is fucntion for var $debug ???
    a value of 1 is ok.
    run the script from the command line to see the output to STDERR.

    best regards


  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •