Monday 22 September 2014

Creating email accounts & forwarders on webmail using PHP

What is this needed for? For example, we have an awesome domain and you want to become a mail service provider, but creating mailboxes manually is not going to work. You can create addon domains, redirects and other things in the same way.
We need following for the script:


1. Request form (file index.php can be found in the attachments).
2. cPanel XML API Client Class (file xmlapi.php can be found in the attachments).

Let's check script of the form in detail:

Code:
$ip = "127.0.0.1";                // should be server IP address or 127.0.0.1 if local server
$account = "username";            // cPanel user account name
$passwd ="password";            // cPanel user password
$port =2083;                    // cpanel secure authentication port
$email_domain = 'domain.com';   // email domain (usually same as cPanel domain)
$email_quota = 50;                // default amount of space in megabytes

Creating XMLAPI request:

Code:
$xmlapi = new xmlapi($ip);

//set port number. cpanel client class allow you to access WHM as well using WHM port.
$xmlapi->set_port($port);                      

// authorization with password. Not as secure as hash.
$xmlapi->password_auth($account, $passwd); 

// cpanel email addpop function Parameters
$call = array(domain=>$email_domain, email=>$email_user,password=>$email_pass, quota=>$email_quota);

// cpanel email fwdopt function Parameters
$call_f  = array(domain=>$email_domain, email=>$email_user,
fwdopt=>"fwd", fwdemail=>$dest_email);

//output to error file  set to 1 to see
$xmlapi->set_debug(0);    
error_log.

// making call to cpanel api
$result = $xmlapi->api2_query($account, "Email", "addpop",
$call);

//create a forward
$result_forward = $xmlapi->api2_query($account, "Email", "addforward",
$call_f);

And of course creating HTML form:

Code:
<html>
<head>
<title>cPanel Email Account Creator</title>
</head>

<body>
<?php echo '<div style="color:red">'.$msg.'</div>'; ?>

<h1>cPanel Email Account Creator</h1>

<form name="frmEmail" method="post">
<table width="400" border="0">
    <tr>
        <td>Username:</td>
        <td><input name="user" size="20" type="text"/></td>
    </tr>  
    <tr>
        <td>Password:</td>
        <td><input name="pass" size="20" type="password"/></td>
    </tr>
    <tr>
        <td>Verify Password:</td>
        <td><input name="vpass" size="20"type="password" /></td>
    </tr>
    <tr>
        <td>Forwarde:</td>
        <td><input name="forward" size="20" type="text"/></td>
    </tr>
    <tr>
        <td colspan="2" align="center"><hr /><input name="submit" type="submit" value="Create Email" /></td>
    </tr>
</table>
</form>
</body>
</html>





follow me on twitter write in your message
Follow softwresandbook
and send to 40404 and receive my updates free on your mobile
If Any Problem Then Comments, also like my Fb Page



0 comments:

Post a Comment