/tools/pdns_to_postfix_backup_mx.php

http://freshdns.googlecode.com/ · PHP · 54 lines · 29 code · 13 blank · 12 comment · 0 complexity · cf4288112e80548274b3e4506f7f8237 MD5 · raw file

  1. #!/usr/bin/php -q
  2. <?php
  3. ob_start();
  4. $mysql_host = "localhost"; /* ENTER YOUR HOSTNAME */
  5. $mysql_db = "pdns"; /* ENTER THE DATABASE NAME */
  6. $mysql_user = "pdns"; /* ENTER THE MYSQL USERNAME */
  7. $mysql_pass = ""; /* ENTER THE MYSQL PASSWORD */
  8. mysql_connect("localhost", $mysql_user, $mysql_pass) or die (mysql_error());
  9. mysql_select_db($mysql_db) or die (mysql_error());
  10. /* LET'S DEFINE SOME ARRAY'S */
  11. $domains = array();
  12. $recipient = array();
  13. $transport = array();
  14. /* LET'S GET ALL DOMAINS */
  15. $query = "SELECT name FROM domains WHERE name <> '' GROUP BY name ORDER BY name";
  16. $query = mysql_query($query) or die (mysql_error());
  17. while($record = mysql_fetch_assoc($query))
  18. {
  19. $domains[] = $record['name']." OK";
  20. $recipient[] = "@".$record['name']." OK";
  21. $transport[] = $record['name']." smtp:[mail.".$record['name']."]";
  22. }
  23. /* LET'S SAVE THE OUTPUT */
  24. $output = '';
  25. /* SAVE THE RELAY DOMAINS */
  26. file_put_contents("/etc/postfix/relay_domains", implode("\n", $domains));
  27. /* LET'S MAKE POSTFIX UNDERSTAND THIS FILE */
  28. exec("postmap /etc/postfix/relay_domains", $output);
  29. /* SAVE THE RELAY RECIPIENTS */
  30. file_put_contents("/etc/postfix/relay_recipient", implode("\n", $recipient));
  31. /* LET'S MAKE POSTFIX UNDERSTAND THIS FILE */
  32. exec("postmap /etc/postfix/relay_recipient", $output);
  33. /* SAVE THE TRANSPORT */
  34. file_put_contents("/etc/postfix/transport", implode("\n", $transport));
  35. /* LET'S MAKE POSTFIX UNDERSTAND THIS FILE */
  36. exec("postmap /etc/postfix/transport", $output);
  37. /* LET'S RELOAD POSTFIX */
  38. exec("/etc/init.d/postfix reload", $output);
  39. /* COLLECT THE OUTPUT */
  40. $content = ob_get_clean();
  41. ?>