Community Forums
Connect with us on LinkedIn
+ Reply to Thread
Page 1 of 2 1 2 LastLast
Results 1 to 15 of 23
  1. #1
    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
    Member
    Join Date
    May 2004
    Posts
    24

    Default

    Search Function bit lost on what you mean, sorry

  3. #3
    Member
    Join Date
    Feb 2004
    Posts
    99

    Default

    search the forums and search google!

  4. #4
    Member
    Join Date
    Jun 2003
    Posts
    396

    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
    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
    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
    Member
    Join Date
    Jun 2003
    Posts
    396

    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
    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
    Member
    Join Date
    Jun 2003
    Posts
    396

    Default

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

  10. #10
    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
    Member
    Join Date
    Jun 2003
    Posts
    396

    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
    Member
    Join Date
    May 2004
    Posts
    24

    Default

    TY I got it working, very much thanks

  13. #13
    Member
    Join Date
    Jun 2003
    Posts
    396

    Default

    NP, glad I could help
    -Albert

  14. #14
    Member
    Join Date
    May 2004
    Posts
    24

    Default

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

  15. #15
    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

Similar Threads & Tags
Similar threads

  1. Auto Delete Emails in Multiple Email Accounts at once
    By stombaugh in forum cPanel Developers
    Replies: 2
    Last Post: 01-25-2010, 10:33 AM
  2. Email accounts not shown in Add/Remove/Manage accounts
    By mfragoso in forum E-mail Discussions
    Replies: 5
    Last Post: 10-03-2007, 03:45 PM
  3. Newbie cannot add email accounts
    By zgott300 in forum E-mail Discussions
    Replies: 2
    Last Post: 08-16-2006, 01:33 PM
  4. Bulk add of email accounts
    By GypsyMage in forum cPanel and WHM Discussions
    Replies: 3
    Last Post: 03-24-2006, 10:27 AM
  5. Auto Add Email Accounts [Stoped Working]
    By xMichio in forum cPanel and WHM Discussions
    Replies: 18
    Last Post: 12-03-2004, 01:37 PM
Linkedin       Facebook       Twitter       RSS       Flickr       YouTube