in reply to Re: POP access using System users and DB authentication
in thread POP access using System users and DB authentication

rdfield,

The existing module can be used for system user verification and download the mail to client side.

I had modified commandPASS function to handle both cases. The system user verification is working properly and mail gets download to the client machine. In the other part (for DB authentication), verification has been done but mail downloading is not working ... i think it has to handle different structure and separate function for that.

The code i wrote in the commandPASS :

if ($uidok == 0) { #### Used for if ($fqdn eq "dev.com") { ### Starts Database connection ### Query for getting password if ($password1 eq $password2) ## $password1 is from client machine a +nd $password2 from database { #### INCOMPLETE PART ### ### Here i want to handle the mails (Path say : usr/domainname/useri +d/mailfolder/ ### mail folder contains file1,file2 etc (file1,file1 represents eac +h mail...) ### Read the mail from the user mail folder. Each mail is stored as +a single file. ### I would like to read each mail and download it to the client mac +hine } else { print "-ERR access denied $uid $arg $CRLF"; &TimeIsUp("Incorrect Password... :\($CRLF"); } } else { ### Used for System Users... #### WORKING PROPERLY.... ### The actual code from the module ## } }

Hope i explained my problem ... If not clear, i can post entire code here .... Lines of code is very large.

Thanks a lot for your comment
Waiting for your help


Edited: ~Mon Oct 21 17:08:31 2002 (GMT) by footpad: Added <CODE> and other HTML formatting tags, per Consideration

Replies are listed 'Best First'.
Re: Re: Re: POP access using System users and DB authentication
by rdfield (Priest) on Oct 21, 2002 at 08:19 UTC
    Looks pretty straightforward to me. There's plenty of modules out there to help you. Try looking at DBI (the DataBase Interface module and its associated drivers) for your database connectivity and the various Mail:: modules (all available via http://search.cpan.org. There's even one called Mail::POP3Client...could be worth a close look.

    rdfield

      rdfield, I have done (DB Authentication) using DBI module and it works for me. But i am not able to download the mails to client machine. Tested it (using telnet)and accepting db authentication and while using LIST command it shows error "-ERR not logged in yet". Why it shows this error. Please post your comment here. Thanks and Regards sur
        Unfortunately there isn't enough detail in your posts to make any sort of educated guess as to what is happening, but my feeling is that you are trying to solve too big a problem. Allow me to explain:

        You seem to have written a large amount of code to solve your complete problem. Now that it compiles, you are running it only to find that it does not give you the answers you expect. This type of programming is so common that it has a name - 'big bang programming', and it is not to be recommended.

        I suggest that you start to analyze your problem using a more iterative approach:

        • break your problem up into smaller, more managable chunks
        • Tackle each 'chunk' seperately
        • Test the output of each chunk of code thoroughly (known as 'unit testing')
        • Make sure that each 'chunk' (or, more commonly, 'sub') gives you the expected output for each set of input.
        • Verify this input <=> output mapping very carefully indeed.
        • Repeat until you are satisfied that each 'sub' is giving the expected responses
        After the individual 'sub's are working to your satisfaction, you can start linking the 'subs' together. You should only attempt to string together an extra 'sub' for each iteration of your testing. Make sure that each combination of 'subs' gives you the expected output for each input. You will more easily identify which 'sub' is causing your problem since the actual output will not match the expected output.

        Give yourself as much information as possible by either running your script with the '-d' flag on the command line ('debug' mode) or by liberally sprinkling your code with informative 'print' statements. These 'print' statements are especially useful in the following circumstances:

        • just before a decision (e.g 'if' or 'unless')
        • just after a 'decision' ro verify that the expected path has been taken
        • after assignments, especially complex ones

        After following this advice you should be able to break the problem down to the most important and relevent lines (say 12 or 15) and be able to post a very short and direct question to this forum (e.g. for the given input (blah blah blah) the following code produces (x x x x) when I was expecting (y y y y), can somebody please explain?)

        rdfield