Page 1 of 2 12 LastLast
Results 1 to 15 of 23

Thread: Auto Add Email Accounts

  1. #1
    Registered Member
    Join Date
    May 2004
    Posts
    24

    Question Auto Add Email Accounts

    Hello, Anyone know is it possible to write a CGI or PHP script to tell cPanel to automatically add an email account and certain amount of quota to it?

  2. #2
    Registered Member
    Join Date
    May 2004
    Posts
    24

    Default

    Search Function bit lost on what you mean, sorry

  3. #3
    Registered Member
    Join Date
    Feb 2004
    Posts
    99

    Default

    search the forums and search google!

  4. #4
    Registered Member
    Join Date
    Jun 2003
    Posts
    398

    Default

    I've looked to find where I origionally found a portion of this and cannot. So the real author needs the credit.

    Code:
    <?php
        /*
        Create POP email accounts
        Works for me when others failed.
        */
        //include('header.php');
         
        // Domain Logon Details
        $username = "cpanellogin";
        $password = "cpanelpassword";
         
        // Domain details
        $domain = "domainname.com";
        $theme = "x";//eg "fantastico_bluelagoon";
         
        // Parameters to parse
        $eDomain = "domainame.com";
        $eQuota = "5"; // eg"10";
         
        if (isset($delpop)) {
            print "Account deleted : ".$popuser."@".$eDomain;
             
            $postfields = "email=$popuser&domain=$eDomain";
            $url = "http://$username:$password@$domain:2082/frontend/$theme/mail/realdelpop.html?$postfields";
            //print "<hr>";
            //print $url;
            // initialise Curl
            $popPost = curl_init();
            curl_setopt($popPost, CURLOPT_URL, $url);
            // Set Curl Option: Username:Password
            curl_setopt($popPost, CURLOPT_POST, 1);
            // Set Curl Option: Collect result from script
            curl_setopt($popPost, CURLOPT_RETURNTRANSFER, 1);
            // Set Curl Option: Set timeout to 15 seconds
            curl_setopt($popPost, CURLOPT_TIMEOUT, 15);
            // Set Curl Option: Post data
            //curl_setopt($popPost, CURLOPT_POSTFIELDS, $postfields);
            // Execute Request, and store result in $tb_post
            $popPost_result = curl_exec ($popPost);
            // Close Curl
            curl_close ($popPost);
            $start = strpos($popPost_result, 'Account');
            $end = strpos($popPost_result, 'Go');
            $subset = substr($popPost_result, $start, $end+8-$start);
            print $substr;
        }
         
        if (isset($eEmail)) {
            $ePassword = $password2;
            // Put post fields variable together
            $postfields = "email=$eEmail&domain=$eDomain&password=$ePassword&quota=$eQuota";
            // initialise Curl
            $popPost = curl_init();
            // Set Curl Option: URL
            $url = "http://$username:$password@$domain:2082/frontend/$theme/mail/doaddpop.html?$postfields";
            curl_setopt($popPost, CURLOPT_URL, $url);
            // Set Curl Option: Username:Password
            curl_setopt($popPost, CURLOPT_POST, 1);
            // Set Curl Option: Collect result from script
            curl_setopt($popPost, CURLOPT_RETURNTRANSFER, 1);
            // Set Curl Option: Set timeout to 15 seconds
            curl_setopt($popPost, CURLOPT_TIMEOUT, 15);
            // Set Curl Option: Post data
            //curl_setopt($popPost, CURLOPT_POSTFIELDS, $postfields);
            // Execute Request, and store result in $tb_post
            $popPost_result = curl_exec ($popPost);
            // Close Curl
            curl_close ($popPost);
             
            //output results
            $start = strpos($popPost_result, '<b>Account');
            $end = strpos($popPost_result, 'created.');
            $subset = substr($popPost_result, $start, $end+8-$start);
            $subset = str_replace('login ', "login<br>", $subset); //for neatness
            //$subset=str_replace("<!",'<-',$subset); //see the comments
            if (preg_match ('/Sorry/i', "$subset")) {
                print "<br><b>&nbsp;&nbsp;&nbsp;Sorry that account already exists.</b><br><br><br><br><br><br><br>";
                //print ($subset);
            } elseif(preg_match ('/You must specify/i', "$subset")) {
                print "<br><b>&nbsp;&nbsp;&nbsp;You must specify a password.</b><br><br><br><br><br><br><br>";
            } else {
                print ($subset);
                print "<br><br>You may now use <b>mail.$domain</b> as your POP3 setting in your mail client or access <b>WebMail</b> by selecting <a href=http://$domain/webmail>Here</a>.
                    <center>
                    <br><a href=javascript:history.go(-1)>Go Back</a>
                    </center>";
            }
        } else {
        ?>
    
        <form name="emailform" method="post" action="anew.php">
          <table border="0" cellspacing="1" align=center cellpadding="0">
            <tr> 
              <td>Prefered Email Address:</td>
              <td colspan="2"><input size=10 value="" name="eEmail" type="text">
            @<?= $domain ?></td>
            </tr>
            <tr> 
              <td>Password:</td>
              <td colspan="2"><input size=10 name="password1" value="" type="password"></td>
            </tr>
            <tr> 
              <td>Retype Password:</td>
              <td colspan="2"><input size=10 name="password2" value="" type="password"></td>
            </tr>
            <tr> 
              <td>&nbsp;</td>
              <td colspan="2">&nbsp;</td>
            </tr>
            <tr> 
              <td>&nbsp;</td>
              <td width="344"> <div align="center"> 
                  <input name="signupbtn" type="button" id="signupbtn" value="Signup" onClick="validateform()">
                </div></td>
              <td width="163">&nbsp;</td>
            </tr>
          </table>
          <script language="JavaScript1.2">
        
        
        function validateform() {
            if (checkEmailAddress(document.emailform.eEmail)) {
                if(document.emailform.password1.value == document.emailform.password2.value) {
                    document.emailform.submit();
                }
                else 
                {
                    alert("The passwords you typed do not appear to match");
                }
            }
        }
        
        function checkEmailAddress(field) {
        var good;
        //var goodEmail = field.value.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi);
        var goodEmail = field.value;
        
        if(goodEmail != "") {
        //if (goodEmail){
           good = true
        } else {
           alert('Please enter a valid e-mail address.')
           field.focus()
           field.select()
           good = false
           }
           return good;
        }
        
        
        </script>
        </form>
        <? }
    //include('footer.php');
    ?>
    You need to look closely, Also have a function for delete but this form just adds.
    -Albert

  5. #5
    Registered Member
    Join Date
    May 2004
    Location
    United Kindom
    Posts
    136

    Default

    Umm cool thats what i needed but i cant get that to work can you help me please?

  6. #6
    Registered Member
    Join Date
    May 2004
    Posts
    24

    Default

    I think i see kinda.. i think that code is 2 web pages, 1 for the php engine and 1 for the html form but i cant seem to get it to work :S

  7. #7
    Registered Member
    Join Date
    Jun 2003
    Posts
    398

    Default

    You sure you are running Curl on your server?

    This is a single file. name it anew.php then make the changes in the config area. (this could be split out to a config file but for simplisity I left it in). If you name the file something else you need to edit the FORM tag in the html area.

    access the file via your web browser. the HTML portion calls the php portion.

    Edit this area near the top
    // Domain Logon Details
    $username = "cpanellogin";
    $password = "cpanelpassword";

    // Domain details
    $domain = "domainname.com";
    $theme = "x";//eg "fantastico_bluelagoon";

    // Parameters to parse
    $eDomain = "domainame.com";
    $eQuota = "5"; // eg"10";
    -Albert

  8. #8
    Registered Member
    Join Date
    May 2004
    Posts
    24

    Default

    That is probaly why it didnt work, i dont have curl were can i get it?

  9. #9
    Registered Member
    Join Date
    Jun 2003
    Posts
    398

    Default

    you can rebuild apache using /scripts/easyapache then select the option for CURL
    -Albert

  10. #10
    Registered Member
    Join Date
    May 2004
    Posts
    24

    Default

    Sorry to be a bother but I cant find this option when I rebuild it:S

  11. #11
    Registered Member
    Join Date
    Jun 2003
    Posts
    398

    Default

    ok maybe this is easier.

    From your WHM you select Software->Update Apache.

    Now, there are lots of options here. if you are not sure I would suggest getting some help.
    -Albert

  12. #12
    Registered Member
    Join Date
    May 2004
    Posts
    24

    Default

    TY I got it working, very much thanks

  13. #13
    Registered Member
    Join Date
    Jun 2003
    Posts
    398

    Default

    NP, glad I could help
    -Albert

  14. #14
    Registered Member
    Join Date
    May 2004
    Posts
    24

    Default

    Again, just out of curiosity, you wouldnt also have the script for email forwarders?

  15. #15
    Registered Member
    Join Date
    May 2004
    Location
    United Kindom
    Posts
    136

    Default

    umm how do you mean email fowarders??? I have a script sort of if i think your on what im on about

Page 1 of 2 12 LastLast

Similar Threads

  1. Tidy Up Email Accounts - Auto Purge Mail?
    By jerdoggmckoy in forum E-mail Discussions
    Replies: 10
    Last Post: 03-14-2014, 02:19 PM
  2. Auto Delete Emails in Multiple Email Accounts at once
    By stombaugh in forum cPanel Developers
    Replies: 2
    Last Post: 01-25-2010, 11:33 AM
  3. Email accounts not shown in Add/Remove/Manage accounts
    By mfragoso in forum E-mail Discussions
    Replies: 5
    Last Post: 10-03-2007, 04:45 PM
  4. Auto Add Email Accounts [Stoped Working]
    By xMichio in forum E-mail Discussions
    Replies: 18
    Last Post: 12-03-2004, 02:37 PM
  5. Email accounts DON'T ADD!!
    By iHost.net.nz in forum E-mail Discussions
    Replies: 10
    Last Post: 11-18-2004, 11:53 PM
bargain