<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.frotmail.nl/index.php?action=history&amp;feed=atom&amp;title=Backup_MX</id>
	<title>Backup MX - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.frotmail.nl/index.php?action=history&amp;feed=atom&amp;title=Backup_MX"/>
	<link rel="alternate" type="text/html" href="https://wiki.frotmail.nl/index.php?title=Backup_MX&amp;action=history"/>
	<updated>2026-08-06T03:38:49Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://wiki.frotmail.nl/index.php?title=Backup_MX&amp;diff=53&amp;oldid=prev</id>
		<title>Eric: Created page with &quot;= PostFix =  == PostFix als Backup MX == Dit heb ik gedaan om te zorgen dat mijn mailserver als backup/failback mailserver kan fungeren.  Maak een tabel in je postfix database:   CREATE TABLE domainsbackup (     id int(9) unsigned NOT NULL auto_increment,     domain varchar(255) NOT NULL default &#039;&#039;,     active tinyint(1) unsigned default &#039;1&#039;,     PRIMARY KEY  (id),     KEY id (id)   ) ENGINE=MyISAM DEFAULT CHARSET=latin1;  In deze tabel kan je het domein aangeven wat gea...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.frotmail.nl/index.php?title=Backup_MX&amp;diff=53&amp;oldid=prev"/>
		<updated>2022-04-05T09:14:43Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;= PostFix =  == PostFix als Backup MX == Dit heb ik gedaan om te zorgen dat mijn mailserver als backup/failback mailserver kan fungeren.  Maak een tabel in je postfix database:   CREATE TABLE domainsbackup (     id int(9) unsigned NOT NULL auto_increment,     domain varchar(255) NOT NULL default &amp;#039;&amp;#039;,     active tinyint(1) unsigned default &amp;#039;1&amp;#039;,     PRIMARY KEY  (id),     KEY id (id)   ) ENGINE=MyISAM DEFAULT CHARSET=latin1;  In deze tabel kan je het domein aangeven wat gea...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= PostFix =&lt;br /&gt;
&lt;br /&gt;
== PostFix als Backup MX ==&lt;br /&gt;
Dit heb ik gedaan om te zorgen dat mijn mailserver als backup/failback mailserver kan fungeren.&lt;br /&gt;
&lt;br /&gt;
Maak een tabel in je postfix database:&lt;br /&gt;
  CREATE TABLE domainsbackup (&lt;br /&gt;
    id int(9) unsigned NOT NULL auto_increment,&lt;br /&gt;
    domain varchar(255) NOT NULL default &amp;#039;&amp;#039;,&lt;br /&gt;
    active tinyint(1) unsigned default &amp;#039;1&amp;#039;,&lt;br /&gt;
    PRIMARY KEY  (id),&lt;br /&gt;
    KEY id (id)&lt;br /&gt;
  ) ENGINE=MyISAM DEFAULT CHARSET=latin1;&lt;br /&gt;
&lt;br /&gt;
In deze tabel kan je het domein aangeven wat geaccepteerd mag worden door de mailserver en later bezorgt mag worden op de eerste mailserver. Ook kan je aangeven of die optie nu actief moet zijn of niet.&lt;br /&gt;
&lt;br /&gt;
In het main.cf configbestand, voegen we de regels toe:&lt;br /&gt;
  # Backup MX&lt;br /&gt;
  relay_domains = mysql:/etc/postfix/mysql_backupmx.cf&lt;br /&gt;
&lt;br /&gt;
in &amp;#039;mysql_backupmx.cf&amp;#039; heb ik het volgende staan:&lt;br /&gt;
  hosts = localhost&lt;br /&gt;
  user = *db gebruiker*&lt;br /&gt;
  password = *db wachtwoord*&lt;br /&gt;
  dbname = *db naam*&lt;br /&gt;
  &lt;br /&gt;
  table = domainsbackup&lt;br /&gt;
  select_field = domain&lt;br /&gt;
  where_field = domain&lt;br /&gt;
  additional_conditions = and active = &amp;#039;1&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Nu herstarten we postfix, en gaan met die banaan&lt;br /&gt;
  postfix reload&lt;br /&gt;
&lt;br /&gt;
== Niet Spam &amp;amp; Virusscannen van backup domeinen ==&lt;br /&gt;
In de amavis home map een bestand aanmaken: backup_domains&lt;br /&gt;
&lt;br /&gt;
Met de volgende inhoud:&lt;br /&gt;
  domeinnaam.nl  1&lt;br /&gt;
  domeinnaam2.nl 1&lt;br /&gt;
&lt;br /&gt;
Amavis configuratie &amp;#039;/etc/amavisd.conf&amp;#039; openen.&lt;br /&gt;
Volgende regels erin:&lt;br /&gt;
  @bypass_virus_checks_maps = ( \read_hash(&amp;quot;$MYHOME/backup_domains&amp;quot;) );&lt;br /&gt;
  @bypass_spam_checks_maps = ( \read_hash(&amp;quot;$MYHOME/backup_domains&amp;quot;) );&lt;br /&gt;
&lt;br /&gt;
amavis reloaden, en gaan met die banaan.&lt;br /&gt;
&lt;br /&gt;
== Sync script ==&lt;br /&gt;
Script om db te dumpen naar een backup_domains file:&lt;br /&gt;
&lt;br /&gt;
 #!/usr/local/bin/php&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 &lt;br /&gt;
 ##Config&lt;br /&gt;
  $amavisd = &amp;#039;/usr/local/sbin/amavisd&amp;#039;;&lt;br /&gt;
  $amavisd_conf = &amp;#039;/etc/amavisd.conf&amp;#039;;&lt;br /&gt;
  $amavisd_domains_noscan = &amp;#039;/etc/backup_domains&amp;#039;;&lt;br /&gt;
  $debug = false;&lt;br /&gt;
 &lt;br /&gt;
 ## Create connection to database&lt;br /&gt;
  include (&amp;#039;../webroot/slave/config.php&amp;#039;);&lt;br /&gt;
  connect(&amp;#039;pfix&amp;#039;);&lt;br /&gt;
 &lt;br /&gt;
 ## Debug?&lt;br /&gt;
  if( ($_SERVER[&amp;#039;argc&amp;#039;] &amp;gt; 2) or (($_SERVER[&amp;#039;argv&amp;#039;][1] != &amp;#039;-d&amp;#039;) and ($_SERVER[&amp;#039;argc&amp;#039;] == 2)) )&lt;br /&gt;
    die(&amp;#039;Usage: &amp;#039;.$_SERVER[&amp;#039;argv&amp;#039;][0].&amp;quot; [-d]\n       -d   Debugging on\n&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
  if($_SERVER[&amp;#039;argv&amp;#039;][1] == &amp;#039;-d&amp;#039;)&lt;br /&gt;
    $debug = true;&lt;br /&gt;
 &lt;br /&gt;
 ## Generate new file&lt;br /&gt;
  if ($debug) echo &amp;quot;DEBUG: Generating new file\n*****************************\n&amp;quot;;&lt;br /&gt;
  $query = &amp;quot;select * from backupmx where active=1&amp;quot;;&lt;br /&gt;
  $result = mysql_query($query) or die(&amp;#039;ERROR: Error in query: &amp;#039;.$query.&amp;quot;\nERROR: &amp;quot;.mysql_error());&lt;br /&gt;
  $fp = fopen($amavisd_domains_noscan,&amp;quot;w&amp;quot;);&lt;br /&gt;
  while ( $row = mysql_fetch_assoc($result))&lt;br /&gt;
  {&lt;br /&gt;
    fputs($fp,$row[&amp;#039;domain&amp;#039;].&amp;quot; 1\n&amp;quot;);&lt;br /&gt;
    if ($debug) echo &amp;quot;DEBUG: &amp;quot;.$row[&amp;#039;domain&amp;#039;].&amp;quot; Added!\n&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
  fclose($fp);&lt;br /&gt;
 &lt;br /&gt;
 ## Reload amavisd&lt;br /&gt;
  if ($debug) echo &amp;quot;*****************************\nDEBUG: Amavisd reloading...\n&amp;quot;;&lt;br /&gt;
  $reload = `$amavisd -c $amavisd_conf reload 2&amp;gt;&amp;amp;1 | grep Error`;&lt;br /&gt;
  if($reload != &amp;quot;&amp;quot;)&lt;br /&gt;
    echo &amp;quot;ERROR: Amavisd NOT reloaded!\nERROR: $reload\n&amp;quot;;&lt;br /&gt;
  else&lt;br /&gt;
    if ($debug) echo &amp;quot;DEBUG: Amavisd is succesfully reloaded\n&amp;quot;;&lt;br /&gt;
 ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cron friendly ;) bij een error blijft amavisd wel draaien en krijg je dus een mailtje met de foutmelding&lt;br /&gt;
&lt;br /&gt;
[[Category:Mail Related]][[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Eric</name></author>
	</entry>
</feed>