TechSemut Malaysia

Pasang Mail Server Bahagian 6 – Postfix, Courier, MySQL & AfterLogic WebMail

Pasang Mail Server Bahagian 6 – Postfix, Courier, MySQL & AfterLogic WebMail

Pasang Mail Server Bahagian 6 – Postfix, Courier, MySQL & AfterLogic WebMail
Januari 29
15:40 2017

Artikel pasang mail server pada kali ini akan membincangkan aspek pengurusan akaun pengguna email.  Kita akan bincangkan 2 perkara pengurusan iaitu menambah dan menghapus akaun pengguna.  Seperti yang terdapat dalam artikel Pasang Mail Server (Bahagian 4), kita perlu untuk memasuki pangkalan data MySQL untuk menambah dan menghapus pengguna.  Artikel kali ini akan membantu memudahkan pengurusan ini dengan atursara ringkas yang dibangunkan dengan PHP.

AMARAN:  Aturcara PHP yang dibangunkan adalah sangat ringkas dan tidak selamat dari serangan laman web seperti SQL injection dan sebagainya. Maklumlah programmer amatur copy dan paste sana sini.  Pastikan anda tidak mendedahkan program ini di laman web tanpa sebarang perlindungan!  Sesiapa yang boleh menjadikan ianya lebih kacak dan selamat dialu-alukan…

18. Bina Direktori

Jika folder laman web anda adalah di /var/www/html:

cd /var/www/html mkdir mailadmin

19. Konfigurasi “Basic HTTP Auth”

Pastikan dalam konfigurasi website anda (contoh di: /etc/apache2/sites-available/00-default.conf) mempunyai direktif seperti berikut:

Edit fail:

vi /etc/apache2/sites-available/00-default.conf

Kandungan:

[...] DocumentRoot /var/www/  Options None  AllowOverride All  Order allow,deny  Allow from all  [...]

Masuk ke folder mailadmin:

cd /var/www/html/mailadmin

Bina fail .htaccess

vi .htaccess

Masukkan kandungan berikut:

AuthUserFile /var/www/html/mailadmin/.htpasswd AuthName "Please Enter Password" AuthType Basic Require valid-user

Bina akaun pengguna dan password:

 htpasswd -c .htpasswd nazri

Tukar dengan nama pengguna yang anda mahu dan password yang KUKUH.

Tukar permission:

chmod 744 .htpasswd chmod 744 .htaccess

Restart apache web server:

service apache2 restart

20. Menambah Pengguna

Aturcara ringkas ini akan memasukkan akaun pengguna email ke pangkalan data dan menghantar welcome email bagi membina Maidir secara automatik.

Bina aturcara ringkas berikut di dalam direktori yang sama (/var/www/mailadmin):

cd /var/www/html/mailadmin vi add.html

Masukkan:

    Add User   


Click here for main menu.

Tukar URL berwarna merah dengan alamat server anda.

Bina fail PHP untuk tambah pengguna:

vi insert.php

Masukkan kod berikut dan tukar maklumat yang berwarna merah:

password_mail_anda", "mail_db"); // Check connection if($link === false){ die("ERROR: Could not connect. " . mysqli_connect_error()); } // Escape user inputs for security $email = mysqli_real_escape_string($link, $_POST['email']); $password = mysqli_real_escape_string($link, $_POST['password']); // Tukar kuota mengikut cita rasa anda $quota = 500485760; // tambah ke pangkalan data $sql = "INSERT INTO users (email, password, quota) VALUES ('$email', ENCRYPT('$password'), '$quota')"; if(mysqli_query($link, $sql)){ echo "Records added successfully. 
"; $to = $email; $subject = "Email Account Activation"; $message = "Hi $email, Welcome to DATALEAD MAILBOX!"; $header = "From:postmaster@datalead.com.my \r\n"; $retval = mail ($to,$subject,$message,$header); if( $retval == true ) { echo "Message sent successfully...
"; echo "Click here for main menu.
"; } else { echo "Message could not be sent..."; echo "Click here for main menu.
"; } } else{ echo "ERROR: Could not able to execute $sql. " . mysqli_error($link); } // close connection mysqli_close($link); ?>

21. Papar dan Hapus Pengguna

Bina fail “delete.php” dalam direktori yang sama:

vi delete.php

Masukkan kandungan berikut dan tukar maklumat yang berkenaan:

  Delete User   password_mail_anda"; $dbname = "mail_db"; // Create connection $conn = mysqli_connect($servername, $username, $password, $dbname); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } $sql = "SELECT email, password, quota FROM users"; $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { // output data of each row while($row = mysqli_fetch_assoc($result)) { echo "Email: " . $row["email"] . "
"; } } else { echo "0 results"; } echo "
"; mysqli_close($conn); ?> password_mail_anda'; $db = 'mail'; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn ) { die('Could not connect: ' . mysql_error()); } $email = $_POST['email']; $sql = "DELETE FROM users ". "WHERE email = '$email'" ; mysql_select_db($db); $retval = mysql_query( $sql, $conn ); if(! $retval ) { die('Could not delete data: ' . mysql_error()); } echo "Email $email deleted successfully.
"; echo "Don't forget to delete user mailbox at /home/vmail/datalead.com.my manually.
"; echo "Click here for main menu.
"; mysql_close($conn); } else { ?>
Delete Email

Click here for main menu.

Seperti di dalam aturcara di atas, kita perlu menghapuskan Maildir yang berkaitan dengan akaun pengguna di atas secara manual.

22. Bina Laman Utama

Edit fail “index.html” dalam direktori yang sama:

vi index.html

Masukkan kod HTML ringkas dan malas berikut (hehehe):

ADD
DELETE

Tukar kesemua permission dan fail ownership:

cd /var/www/html chown www-data.www-data mailadmin -R chmod 755 mailadmin -R

Kini anda boleh layari atrucara ringkas melalui alamat http://mail.datalead.com.my/mailadmin.  Masukkan akaun pengguna dan kata laluan yang dibina dalam langkah (19).  Terimalah program ringkas dan malas mailadmin berikut:

Laman utama:

Tambah pengguna:

Papar dan hapus pengguna:

23. Penutup

Sekian sahaja artikel bahagian ke-6 siri pasang mail server. Tuan-tuan yang mempunyai skill yang tinggi dalam PHP programming dialu-alukan untuk menambah baik program di atas :-).  Dengan ini tamatlah keseluruhan siri artikel untuk pasang email server.  Selamat mencuba dan jumpa lagi pada lain-lain artikel pada masa hadapan.

____________________________________________________

BAHAGIAN 1 | BAHAGIAN 2 | BAHAGIAN 3 | BAHAGIAN 4 | BAHAGIAN 5 | BAHAGIAN 6

Related Articles

0 Comments

No Comments Yet!

There are no comments at the moment, do you want to add one?

Write a comment

Write a Comment

Your email address will not be published.
Required fields are marked *

*

Facebook Auto Publish Powered By : XYZScripts.com