943,892 Members | Top Members by Rank

Ad:
  • PHP Discussion Thread
  • Unsolved
  • Views: 9497
  • PHP RSS
Aug 1st, 2006
0

Automatic email creation in cpanel ----PHP

Expand Post »
Hi friends
Is it posssible to create an email account in the cpanel without manualy logging in ? I want to create a php script which logs into the cpanel and create an email account . I hope i would get a solution form u guys

Thanks
Reputation Points: 5
Solved Threads: 5
Junior Poster
vssp is offline Offline
197 posts
since Jul 2006
Aug 1st, 2006
0

Re: Automatic email creation in cpanel ----PHP

Quote originally posted by vssp ...
Hi friends
Is it posssible to create an email account in the cpanel without manualy logging in ? I want to create a php script which logs into the cpanel and create an email account . I hope i would get a solution form u guys

Thanks

you cannot do it, nor cpanel would allow do it even if u create a script.

coz it is a security factor.
Reputation Points: 13
Solved Threads: 2
Junior Poster
Vinoth is offline Offline
125 posts
since Jun 2004
Aug 1st, 2006
0

Re: Automatic email creation in cpanel ----PHP

how to access the cpanel using script?
Reputation Points: 5
Solved Threads: 5
Junior Poster
vssp is offline Offline
197 posts
since Jul 2006
Aug 1st, 2006
0

Re: Automatic email creation in cpanel ----PHP

Basically, it's possible, but not easy.

1) You have to do some reverse engineering of CPanel (which normally is forbidden by the licence agreement), to find out how/where CPanel stores the email accounts in its database.

2) You need to do exactly what CPanel does, such as adding the email account to the mailer deamon's user database and (maybe) restart the deamon or rebuild the database, using a console command.

I don't think you'd be able to use the internal CPanel functions from an outside script. Either the code is crypted or you need a valid session to use the functions.

The other way you could do it is as difficult as the first one. You could emulate a browser, open a session and add the email account. But this requires a lot of knowledge about session cookies and the http protocol (how to build the headers).
If CPanel uses (forces) https (secure) connections, simply forget the second solution!
Reputation Points: 11
Solved Threads: 0
Newbie Poster
Rotak is offline Offline
19 posts
since May 2005
Aug 2nd, 2006
0

Re: Automatic email creation in cpanel ----PHP

Quote originally posted by vssp ...
Hi friends
Is it posssible to create an email account in the cpanel without manualy logging in ? I want to create a php script which logs into the cpanel and create an email account . I hope i would get a solution form u guys

Thanks
Hi vssp;

Fortunately CPanel does not use sessions, as Rotak mentioned. Therefore constructing the right HTTP request is not difficult.

If you try a http request to the Cpanel url, you will notice that you receive a 401 response header. This is good news since it means Cpanel uses HTTP Basic Authentication (Digest Auth also sends the same header, but since its not supported on all browsers, I guess cpanel opts for Basic Auth). This is easy to make a http request for in php.

With Basic Authentication username and password is passed as plain text . With php you can use the syntax similar to logging into ftp.

http://user:password@domain.com:port

with any of the stream functions, such as fopen, file_get_contents, fsockopen, file etc.

Example:

[PHP]$fp = fopen('http://user:password@domain.com:port', 'r');[/PHP]

For creating an email account on Cpanel, the url is of the structure:

http://[example.com]:[2082]/frontend/[x]/mail/doaddpop.html?email=[test]&domain=[example.com]&password=[test]&quota=[10]

The chars in brackets [] are dependant on yoru Cpanel setup or the email account.

Heres an example script:

[PHP]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Add Cpanel Email Accounts</title>
</head>

<body>

<fieldset>
<legend>Add a Cpanel Email Account</legend>
<form name="add_cpemail">
<fieldset>
<legend>Username</legend>
<input type="text" name="username" class="form_text" />
</fieldset>
<fieldset>
<legend>Password</legend>
<input type="password" name="password1" class="form_text" />
</fieldset>
<fieldset>
<legend>Re-type your Password</legend>
<input type="password" name="password2" class="form_text" />
</fieldset>
<fieldset>
<input type="submit" name="send" class="form_button" value="Create Email Account" />
</fieldset>
</form>
</fieldset>
<div style="text-align:center;color:#c0c0c0;">&copy; <a href="http://www.fijiwebdesign.com/">Fiji Web Design</a>&trade;</div>

<script type="text/javascript">
<!--

// form validation
function init() {
var f = document.forms.add_cpemail;
var e = f.elements;
f.onsubmit = function() {
// check username
if (!e.username.value || e.username.value == '') {
alert('Enter a username.');
return false;
}
// check password
if (e.password1.value != e.password2.value) {
alert('Please verify that your password and password confirmation match.');
return false;
}
}
}

window.onload = init();

//-->
</script>

<?php

// required cpanel data
define( 'CPEMAIL_DOMAIN', 'example.com'); // Cpanel domain
define( 'CPEMAIL_SSL', 0); // 0 = no SSL, 1 = Uses SSL
define( 'CPEMAIL_PORT', 2082); // usually the port is 2082 withought SSL and 2083 with SSL
define( 'CPEMAIL_THEME', 'bluelagoon'); // x is the default theme, others include: bluelagoon, x2, xmail, xcontroller, monsoon
define( 'CPEMAIL_QUOTA', 10); // email quota in Megabytes

// sensitive cpanel info
define( 'CPEMAIL_USER', 'username'); // Cpanel Username
define( 'CPEMAIL_PASS', 'password'); // Cpanel Password

if (isset($_GET['send'])) {

$username = $_GET['username'];
$password = $_GET['password1'];

$url = 'http'.(CPEMAIL_SSL ? 's' : '').'://'.CPEMAIL_USER.':'.CPEMAIL_PASS.'@'.CPEMAIL_DOMAIN.':'.CPEMAIL_PORT.'/frontend/'.CPEMAIL_THEME.'/mail/doaddpop.html';
$url .= '?email='.$username.'&domain='.CPEMAIL_DOMAIN.'&password='.$password.'&quota='.CPEMAIL_QUOTA;

// make the http request to cpanel, this is where the email is created
// this is just like the browser making the request, only php does it for the user
$txt = http_request( $url );

// in a live situation, you would parse the returned html, and see if the email was successfully created.
// because this is dependent on the Cpanel theme, I didnt put it in.
// A simple test example would be:
// if (strpos($txt, 'Successful') !== false) { echo 'Your account was created, please log in.'; }
// the above checks for the occurance of Successful in the returned html, which occurs when an email is created (english)
// note: different Cpanel themes give different html output, and may be in English or other language
echo '<hr />';
echo $txt; // show the result of the http request

}

// makes an fopen request to the url and returns the content
function http_request($url) {
ini_set('user_agent','MSIE 4\.0b2;'); // set user agent as IE browser

$txt = '';
if ($fp = fopen($url, 'r')) {
while( !feof($fp) ) {
$txt .= fread( $fp, 2082 );
}
fclose($fp);
}
return $txt;

}

?>


</body>
</html>
[/PHP]
Moderator
Reputation Points: 457
Solved Threads: 101
Nearly a Posting Virtuoso
digital-ether is offline Offline
1,250 posts
since Sep 2005
Aug 2nd, 2006
0

Re: Automatic email creation in cpanel ----PHP

Sorry, you need to change the values for the defined vars to match your cpanel setup. You can get these values by logging into cpanel, and creating an email account then, looking at the url.

Heres what you need to change:

[php]
// required cpanel data
define( 'CPEMAIL_DOMAIN', 'example.com'); // Cpanel domain
define( 'CPEMAIL_SSL', 0); // 0 = no SSL, 1 = Uses SSL
define( 'CPEMAIL_PORT', 2082); // usually the port is 2082 withought SSL and 2083 with SSL
define( 'CPEMAIL_THEME', 'bluelagoon'); // x is the default theme, others include: bluelagoon, x2, xmail, xcontroller, monsoon
define( 'CPEMAIL_QUOTA', 10); // email quota in Megabytes

// sensitive cpanel info
define( 'CPEMAIL_USER', 'username'); // Cpanel Username
define( 'CPEMAIL_PASS', 'password'); // Cpanel Password
[/php]
Moderator
Reputation Points: 457
Solved Threads: 101
Nearly a Posting Virtuoso
digital-ether is offline Offline
1,250 posts
since Sep 2005
Aug 2nd, 2006
0

Re: Automatic email creation in cpanel ----PHP

Another method of logging into sites and doing stuff is to use JavaScript. With xmlHTTPRequest, you can also specify HTTP headers, and thus reply to a Basic Auth header with the username and password.

Problem with this is the same domain policy, but I've seen workaround for this on the web.

But since this is a php forum, I wont post any solutiosn here.
Moderator
Reputation Points: 457
Solved Threads: 101
Nearly a Posting Virtuoso
digital-ether is offline Offline
1,250 posts
since Sep 2005
Aug 2nd, 2006
0

Re: Automatic email creation in cpanel ----PHP

Quote originally posted by digital-ether ...

Fortunately CPanel does not use sessions, as Rotak mentioned. Therefore constructing the right HTTP request is not difficult.
Ooooops... Sorry, I think I mixed CPanel and Plesk. :-| :rolleyes: :o
Reputation Points: 11
Solved Threads: 0
Newbie Poster
Rotak is offline Offline
19 posts
since May 2005
Aug 2nd, 2006
0

Re: Automatic email creation in cpanel ----PHP

Quote originally posted by Rotak ...
If CPanel uses (forces) https (secure) connections, simply forget the second solution!
I forgot to mention. If cpanel forces https, the method I just posted will most likely not work.

You'd have to use some php libs that understand the SSL protocol, like CURL. An alternative is using the Sockets function in PHP, but you'd have to be ready to write a huge lib and know SSL and HTTP well. (I dont think I've seen a SSL lib for php).

Quote originally posted by digital-ether ...
Another method of logging into sites and doing stuff is to use JavaScript. With xmlHTTPRequest, you can also specify HTTP headers, and thus reply to a Basic Auth header with the username and password.
I found this great resource: http://www.peej.co.uk/articles/http-...tml-forms.html
Last edited by digital-ether; Aug 2nd, 2006 at 11:42 pm.
Moderator
Reputation Points: 457
Solved Threads: 101
Nearly a Posting Virtuoso
digital-ether is offline Offline
1,250 posts
since Sep 2005
Aug 4th, 2006
0

Re: Automatic email creation in cpanel ----PHP

Thanks for all i got the solution: refer this link

http://www.zubrag.com/scripts/cpanel...il-account.php

Thsi very usefull for using script to access the cpanel

Thanks
vssp
Reputation Points: 5
Solved Threads: 5
Junior Poster
vssp is offline Offline
197 posts
since Jul 2006

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in PHP Forum Timeline: gif content overflowing error_reporting function seem not suppressing warning
Next Thread in PHP Forum Timeline: Remember my password script in php





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC