Advertisement
iarmin

Postfixadmin - postfix setup

Apr 20th, 2011
486
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.77 KB | None | 0 0
  1. #!/bin/bash -e
  2. #
  3. #: Filename    : postfixadmin-postfix-setup.sh
  4. #: Title       : Postfixadmin Postfix Setup
  5. #: Author      : "Iarmin" <[email protected]>
  6. #: Version     : 0.9
  7. #: Description : Setups the config files for postfix, when you using postfixadmin.
  8. #: Dependency  : ( postfix, postfixadmin )
  9. #: Options     : ./postfixadmin-postfix-setup.sh
  10. #
  11.  
  12. MYSQL_USER=postfix
  13. MYSQL_PASS=asdasd
  14. MYSQL_DATABASE=postfix
  15. MYSQL_HOST=localhost
  16. POSTFIX_PATH="/etc/postfix"
  17.  
  18.  
  19. # REMOVE exit when you finished the configuration
  20. exit
  21.  
  22. # --------------------------------------------------------------- #
  23.  
  24. # postfix main.cf install
  25. maincf="$POSTFIX_PATH/main.cf"
  26.  
  27. if  grep 'virtual_mailbox_domains' "$maincf" -q; then
  28.     echo Postfix already configured!
  29.     exit
  30. fi
  31.  
  32. echo "
  33. virtual_mailbox_domains = proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
  34. virtual_alias_maps =
  35.   proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf,
  36.   proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf,
  37.   proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
  38. virtual_mailbox_maps =
  39.   proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf,
  40.   proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
  41. " >> "$maincf"
  42.  
  43.  
  44. sql="$POSTFIX_PATH/sql"
  45.  
  46. mkdir "$sql"
  47.  
  48. confheader="
  49. user = $MYSQL_USER
  50. password = $MYSQL_PASS
  51. hosts = $MYSQL_HOST
  52. dbname = $MYSQL_DATABASE
  53. "
  54.  
  55. echo "
  56. $confheader
  57. query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
  58. " > "$sql/mysql_virtual_alias_maps.cf"
  59.  
  60. echo "
  61. $confheader
  62. query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('%u', '@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'
  63. " > "$sql/mysql_virtual_alias_domain_maps.cf"
  64.  
  65. echo "
  66. $confheader
  67. query  = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'
  68. " > "$sql/mysql_virtual_alias_domain_catchall_maps.cf"
  69.  
  70. echo "
  71. $confheader
  72. query          = SELECT domain FROM domain WHERE domain='%s' AND active = '1'
  73. " > "$sql/mysql_virtual_domains_maps.cf"
  74.  
  75. echo "
  76. $confheader
  77. query           = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'
  78. " > "$sql/mysql_virtual_mailbox_maps.cf"
  79.  
  80. echo "
  81. $confheader
  82. query = SELECT maildir FROM mailbox,alias_domain WHERE alias_domain.alias_domain = '%d' and mailbox.username = CONCAT('%u', '@', alias_domain.target_domain) AND mailbox.active = 1 AND alias_domain.active='1'
  83. " > "$sql/mysql_virtual_alias_domain_mailbox_maps.cf"
  84.  
  85.  
  86. echo "
  87. $confheader
  88. query = SELECT quota FROM mailbox WHERE username='%s' AND active = '1'
  89. " > "$sql/mysql_virtual_mailbox_limit_maps.cf"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement