<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.qmailtoaster.org:80/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ebroch</id>
	<title>QmailToaster - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.qmailtoaster.org:80/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ebroch"/>
	<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Special:Contributions/Ebroch"/>
	<updated>2026-05-24T14:49:00Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Control_Files_by_Name&amp;diff=1654</id>
		<title>Control Files by Name</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Control_Files_by_Name&amp;diff=1654"/>
		<updated>2026-04-30T14:20:37Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Configuration#Control Files|Back]]&amp;lt;br&amp;gt;&lt;br /&gt;
Here is a table of control files in the &#039;&#039;&#039;/var/qmail/control&#039;&#039;&#039; directory listed alphabetically, with their defaults (&#039;-&#039; = none), whether or not they&#039;re included in the basic Qmail-Toaster, and the modules they are used by.&lt;br /&gt;
&lt;br /&gt;
Note, default values are Qmail-Toaster defaults, not necessarily qmail defaults.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
! control file name !! default !! included !! used by&lt;br /&gt;
|-&lt;br /&gt;
| [[authsenders]] || - || No || qmail-remote&lt;br /&gt;
|-&lt;br /&gt;
| [[badhelo]] || - || No || qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[badloadertypes.cdb]] || Mi5kb&lt;br /&gt;
MzIuZ&lt;br /&gt;
&lt;br /&gt;
MyLmR&lt;br /&gt;
&lt;br /&gt;
MyLkR&lt;br /&gt;
|| Yes || qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[badmailfrom]] || &amp;quot;*\ @*&amp;quot;&lt;br /&gt;
&amp;quot;!*@*.*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;*%*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
(without quotes)&lt;br /&gt;
|| Yes || qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[badmailfromnorelay]] || - || No || qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[badmailto]] || [\(\)]&lt;br /&gt;
[\{\}]&lt;br /&gt;
&lt;br /&gt;
@.*@&lt;br /&gt;
&lt;br /&gt;
[\%]&lt;br /&gt;
&lt;br /&gt;
[\!]&lt;br /&gt;
|| Yes || qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[badmailtonorelay]] || - || No || qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[badmimetypes.cdb]] || TVoAAAEAA TVrhARwAK&lt;br /&gt;
TVoAAAQAA TVrmAU4AA&lt;br /&gt;
&lt;br /&gt;
TVoFAQUAA TVrQAT8AA&lt;br /&gt;
&lt;br /&gt;
TVoIARMAA TVrvAEQAe&lt;br /&gt;
&lt;br /&gt;
TVouARsAA UEsDBAkAA&lt;br /&gt;
&lt;br /&gt;
TVpAALQAc VFZxUUFBT&lt;br /&gt;
&lt;br /&gt;
TVpQAAIAA VkZaeFVVR&lt;br /&gt;
&lt;br /&gt;
TVpQAAMAA ZGltIGZpb&lt;br /&gt;
&lt;br /&gt;
TVpyAXkAX&lt;br /&gt;
|| Yes || qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[blacklists]] || sbl.spamhaus.org || Yes || rblsmtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[bouncefrom]] || MAILER-DAEMON || No || qmail-send&lt;br /&gt;
|-&lt;br /&gt;
| [[bouncehost]] || [[me]] || No || qmail-send&lt;br /&gt;
|-&lt;br /&gt;
| [[clientca.pem]] || - || No || qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[clientcert.pem]] || (generated) || Yes || qmail-remote&lt;br /&gt;
|-&lt;br /&gt;
| [[clientcrl.pem]] || - || No || qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[concurrencyincoming]] || 100 || Yes || tcpserver for&lt;br /&gt;
qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[concurrencylocal]] || 10 || No || qmail-send&lt;br /&gt;
|-&lt;br /&gt;
| [[concurrencyremote]] || 60 || Yes || qmail-send&lt;br /&gt;
|-&lt;br /&gt;
| [[databytes]] || 20971520 || Yes || qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[defaultdelivery]] || ./Maildir/ || Yes || qmail-local via&lt;br /&gt;
qmail-send and qmail-start&lt;br /&gt;
|-&lt;br /&gt;
| [[defaultdomain]] || &amp;lt;hostname --domain&amp;gt; || Yes || qmail-inject&lt;br /&gt;
|-&lt;br /&gt;
| [[defaulthost]] || &amp;lt;hostname --domain&amp;gt; || Yes || qmail-inject&lt;br /&gt;
|-&lt;br /&gt;
| [[dh1024.pem]] || (generated key) || Yes || qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[dh512.pem]] || (generated key) || Yes || qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[doublebouncehost]] || [[me]] || No || qmail-send&lt;br /&gt;
|-&lt;br /&gt;
| [[doublebounceto]] || postmaster || No || qmail-send&lt;br /&gt;
|-&lt;br /&gt;
| [[envnoathost]] || [[me]] || No || qmail-send&lt;br /&gt;
|-&lt;br /&gt;
| [[helohost]] || [[me]] || No || qmail-remote&lt;br /&gt;
|-&lt;br /&gt;
| [[idhost]] || [[me]] || No || qmail-inject&lt;br /&gt;
|-&lt;br /&gt;
| [[localiphost]] || [[me]] || No || qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[locals]] || localhost&lt;br /&gt;
&amp;lt;hostname --fqdn&amp;gt;&lt;br /&gt;
|| Yes || qmail-send&lt;br /&gt;
|-&lt;br /&gt;
| [[logcount]] || 100 || Yes || multilog&lt;br /&gt;
|-&lt;br /&gt;
| [[logsize]] || 1000000 (~1M) || Yes || multilog&lt;br /&gt;
|-&lt;br /&gt;
| [[me]] || &amp;lt;hostname --fqdn&amp;gt; || Yes || various defaults&lt;br /&gt;
|-&lt;br /&gt;
| [[morercpthosts]] || - || No || qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[percenthack]] || - || No || qmail-send&lt;br /&gt;
|-&lt;br /&gt;
| [[plusdomain]] || &amp;lt;hostname --domain&amp;gt; || Yes || qmail-inject&lt;br /&gt;
|-&lt;br /&gt;
| [[qmqpservers]] || - || No || qmail-qmqpc&lt;br /&gt;
|-&lt;br /&gt;
| [[queuelifetime]] || 86400 || Yes || qmail-send&lt;br /&gt;
|-&lt;br /&gt;
| [[rcpthosts]] || &amp;lt;hostname --fqdn&amp;gt; || Yes || qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[rsa512.pem]] || (generated key) || Yes || qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[servercert.pem]] || (generated key) || Yes || qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[smtpgreeting]] || (generated message) || Yes || qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[smtproutes]] || - || Yes || qmail-remote&lt;br /&gt;
|-&lt;br /&gt;
| [[spfbehavior]] || 3 || Yes || qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[spfexp]] || (default) || No || qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[spfguess]] || - || No || qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[spfrules]] || - || No || qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[taps]] || - || No || qmail-queue&lt;br /&gt;
|-&lt;br /&gt;
| [[timeoutconnect]] || 60 || No || qmail-remote&lt;br /&gt;
|-&lt;br /&gt;
| [[timeoutremote]] || 1200 || No || qmail-remote&lt;br /&gt;
|-&lt;br /&gt;
| [[timeoutsmtpd]] || 1200 || No || qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[tlsclientciphers]] || (generated) || Yes || qmail-remote&lt;br /&gt;
|-&lt;br /&gt;
| [[tlsclients]] || - || No || qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[tlshosts/exhaustivelist]] || - || No || qmail-remote&lt;br /&gt;
|-&lt;br /&gt;
| [[tlshosts/FQDN.pem]] || - || No || qmail-remote&lt;br /&gt;
|-&lt;br /&gt;
| [[tlsserverciphers]] || (generated) || Yes || qmail-smtpd&lt;br /&gt;
|-&lt;br /&gt;
| [[virtualdomains]] || (added by vpopmail) || No || qmail-send&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Authsenders&amp;diff=1653</id>
		<title>Authsenders</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Authsenders&amp;diff=1653"/>
		<updated>2026-04-30T14:16:53Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;authsenders&lt;br /&gt;
 Authenticated sender. For each sender included in authsenders: sender:relay:port|user|password qmail-remote will try SMTP Authentication of type CRAM-MD5, LOGIN, or PLAIN with the provided user name user and password password (the authentication information) and eventually relay the mail through relay on port port.  The use of relay and port follows the same rules as for smtproutes Note: In case sender is empty, qmail-remote will try to deliver each outgoing mail SMTP authenticated. If the authentication information is missing, the mail is delivered none-authenticated.  authsenders can be constructed as follows:&lt;br /&gt;
&lt;br /&gt;
   @example.com|generic|passwd&lt;br /&gt;
   .subdomain.example.com|other|otherpw&lt;br /&gt;
   mail@example.com|test|testpass&lt;br /&gt;
   info@example.com:smtp.example.com:26|other|otherpw&lt;br /&gt;
   :mailrelay.example.com:587|e=mc2|testpass&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Authsenders&amp;diff=1652</id>
		<title>Authsenders</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Authsenders&amp;diff=1652"/>
		<updated>2026-04-30T14:16:35Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;authsenders&lt;br /&gt;
 Authenticated sender.  For each sender included in authsenders: sender:relay:port|user|password qmail-remote will try SMTP Authentication of type CRAM-MD5, LOGIN, or PLAIN with the provided user name user and password password (the authentication information) and eventually relay the mail through relay on port port.  The use of relay and port follows the same rules as for smtproutes Note: In case sender is empty, qmail-remote will try to deliver each outgoing mail SMTP authenticated. If the authentication information is missing, the mail is delivered none-authenticated.  authsenders can be constructed as follows:&lt;br /&gt;
&lt;br /&gt;
   @example.com|generic|passwd&lt;br /&gt;
   .subdomain.example.com|other|otherpw&lt;br /&gt;
   mail@example.com|test|testpass&lt;br /&gt;
   info@example.com:smtp.example.com:26|other|otherpw&lt;br /&gt;
   :mailrelay.example.com:587|e=mc2|testpass&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Authsenders&amp;diff=1651</id>
		<title>Authsenders</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Authsenders&amp;diff=1651"/>
		<updated>2026-04-30T14:16:14Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;authsenders&lt;br /&gt;
 Authenticated  sender.  For each sender included in authsenders: sender:relay:port|user|password qmail-remote will try SMTP Authentication of type CRAM-MD5, LOGIN, or PLAIN with the provided user name user and password password (the authentication information) and eventually relay the mail through relay on port port.  The use of relay and port follows the same rules as for smtproutes Note: In case sender is empty, qmail-remote will try to deliver each outgoing mail SMTP authenticated. If the authentication information is missing, the mail is delivered none-authenticated.  authsenders can be constructed as follows:&lt;br /&gt;
&lt;br /&gt;
   @example.com|generic|passwd&lt;br /&gt;
   .subdomain.example.com|other|otherpw&lt;br /&gt;
   mail@example.com|test|testpass&lt;br /&gt;
   info@example.com:smtp.example.com:26|other|otherpw&lt;br /&gt;
   :mailrelay.example.com:587|e=mc2|testpass&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Authsenders&amp;diff=1650</id>
		<title>Authsenders</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Authsenders&amp;diff=1650"/>
		<updated>2026-04-30T14:15:26Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;authsenders&lt;br /&gt;
 Authenticated  sender.  For each sender included in authsenders: sender:relay:port|user|password qmail-remote will try SMTP Authentication of type CRAM-MD5, LOGIN, or PLAIN with the provided user name user and password password (the authentication information) and eventually relay the mail through relay on port port.  The use of relay and port follows the same rules as for smtproutes Note: In case sender is empty, qmail-remote will try to deliver each outgoing mail SMTP authenticated. If the authentication information is missing, the mail is delivered none-authenticated.  authsenders can be constructed as follows:&lt;br /&gt;
&lt;br /&gt;
               @example.com|generic|passwd&lt;br /&gt;
               .subdomain.example.com|other|otherpw&lt;br /&gt;
               mail@example.com|test|testpass&lt;br /&gt;
               info@example.com:smtp.example.com:26|other|otherpw&lt;br /&gt;
               :mailrelay.example.com:587|e=mc2|testpass&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Authsenders&amp;diff=1649</id>
		<title>Authsenders</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Authsenders&amp;diff=1649"/>
		<updated>2026-04-30T14:15:05Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;authsenders&lt;br /&gt;
Authenticated  sender.  For each sender included in authsenders: sender:relay:port|user|password qmail-remote will try SMTP Authentication of type CRAM-MD5, LOGIN, or PLAIN with the provided user name user and password password (the authentication information) and eventually relay the mail through relay on port port.  The use of relay and port follows the same rules as for smtproutes Note: In case sender is empty, qmail-remote will try to deliver each outgoing mail SMTP authenticated. If the authentication information is missing, the mail is delivered none-authenticated.  authsenders can be constructed as follows:&lt;br /&gt;
&lt;br /&gt;
               @example.com|generic|passwd&lt;br /&gt;
               .subdomain.example.com|other|otherpw&lt;br /&gt;
               mail@example.com|test|testpass&lt;br /&gt;
               info@example.com:smtp.example.com:26|other|otherpw&lt;br /&gt;
               :mailrelay.example.com:587|e=mc2|testpass&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Authsenders&amp;diff=1648</id>
		<title>Authsenders</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Authsenders&amp;diff=1648"/>
		<updated>2026-04-30T14:14:48Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;authsenders&lt;br /&gt;
 Authenticated  sender.  For each sender included in authsenders: sender:relay:port|user|password qmail-remote will try SMTP Authentication of type CRAM-MD5, LOGIN, or PLAIN with the provided user name user and password password (the authentication information) and eventually relay the mail through relay on port port.  The use of relay and port follows the same rules as for smtproutes Note: In case sender is empty, qmail-remote will try to deliver each outgoing mail SMTP authenticated. If the authentication information is missing, the mail is delivered none-authenticated.  authsenders can be constructed as follows:&lt;br /&gt;
&lt;br /&gt;
               @example.com|generic|passwd&lt;br /&gt;
               .subdomain.example.com|other|otherpw&lt;br /&gt;
               mail@example.com|test|testpass&lt;br /&gt;
               info@example.com:smtp.example.com:26|other|otherpw&lt;br /&gt;
               :mailrelay.example.com:587|e=mc2|testpass&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Authsenders&amp;diff=1647</id>
		<title>Authsenders</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Authsenders&amp;diff=1647"/>
		<updated>2026-04-30T14:14:37Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; authsenders&lt;br /&gt;
 Authenticated  sender.  For each sender included in authsenders: sender:relay:port|user|password qmail-remote will try SMTP Authentication of type CRAM-MD5, LOGIN, or PLAIN with the provided user name user and password password (the authentication information) and eventually relay the mail through relay on port port.  The use of relay and port follows the same rules as for smtproutes Note: In case sender is empty, qmail-remote will try to deliver each outgoing mail SMTP authenticated. If the authentication information is missing, the mail is delivered none-authenticated.  authsenders can be constructed as follows:&lt;br /&gt;
&lt;br /&gt;
               @example.com|generic|passwd&lt;br /&gt;
               .subdomain.example.com|other|otherpw&lt;br /&gt;
               mail@example.com|test|testpass&lt;br /&gt;
               info@example.com:smtp.example.com:26|other|otherpw&lt;br /&gt;
               :mailrelay.example.com:587|e=mc2|testpass&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Authsenders&amp;diff=1646</id>
		<title>Authsenders</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Authsenders&amp;diff=1646"/>
		<updated>2026-04-30T14:13:44Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; authsenders&lt;br /&gt;
 Authenticated  sender.  For each sender included in authsenders: sender:relay:port|user|password qmail-remote will try SMTP Authentication of type CRAM-MD5, LOGIN, or PLAIN with&lt;br /&gt;
 the provided user name user and password password (the authentication information) and eventually relay the mail through relay on port port.  The use of relay and port follows&lt;br /&gt;
 the same rules as for smtproutes Note: In case sender is empty, qmail-remote will try to deliver each outgoing mail SMTP authenticated. If the authentication information is&lt;br /&gt;
 missing, the mail is delivered none-authenticated.  authsenders can be constructed as follows:&lt;br /&gt;
&lt;br /&gt;
               @example.com|generic|passwd&lt;br /&gt;
               .subdomain.example.com|other|otherpw&lt;br /&gt;
               mail@example.com|test|testpass&lt;br /&gt;
               info@example.com:smtp.example.com:26|other|otherpw&lt;br /&gt;
               :mailrelay.example.com:587|e=mc2|testpass&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Authsenders&amp;diff=1645</id>
		<title>Authsenders</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Authsenders&amp;diff=1645"/>
		<updated>2026-04-30T14:12:52Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; authsenders&lt;br /&gt;
  Authenticated  sender.  For each sender included in authsenders: sender:relay:port|user|password qmail-remote will try SMTP Authentication of type CRAM-MD5, LOGIN, or PLAIN with   the provided user name user and password password (the authentication information) and eventually relay the mail through relay on port port.  The use of relay and port follows the same rules as for smtproutes Note: In case sender is empty, qmail-remote will try to deliver each outgoing mail SMTP authenticated. If the authentication information is missing, the mail is delivered none-authenticated.  authsenders can be constructed as follows:&lt;br /&gt;
&lt;br /&gt;
               @example.com|generic|passwd&lt;br /&gt;
               .subdomain.example.com|other|otherpw&lt;br /&gt;
               mail@example.com|test|testpass&lt;br /&gt;
               info@example.com:smtp.example.com:26|other|otherpw&lt;br /&gt;
               :mailrelay.example.com:587|e=mc2|testpass&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Authsenders&amp;diff=1644</id>
		<title>Authsenders</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Authsenders&amp;diff=1644"/>
		<updated>2026-04-30T14:05:56Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: Created page with &amp;quot; authsenders   Authenticated  sender.  For each sender included in authsenders: sender:relay:port|user|password qmail-remote will try SMTP Authentication of type CRAM-MD5, LOGIN, or PLAIN   with the provided user name user and password password (the authentication information) and eventually relay the mail through relay on port port.  The use of relay and port   follows the same rules as for smtproutes Note: In case sender is empty, qmail-remote will try to deliver each...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; authsenders&lt;br /&gt;
  Authenticated  sender.  For each sender included in authsenders: sender:relay:port|user|password qmail-remote will try SMTP Authentication of type CRAM-MD5, LOGIN, or PLAIN&lt;br /&gt;
  with the provided user name user and password password (the authentication information) and eventually relay the mail through relay on port port.  The use of relay and port&lt;br /&gt;
  follows the same rules as for smtproutes Note: In case sender is empty, qmail-remote will try to deliver each outgoing mail SMTP authenticated. If the authentication infor‐&lt;br /&gt;
  mation is missing, the mail is delivered none-authenticated.  authsenders can be constructed as follows:&lt;br /&gt;
&lt;br /&gt;
               @example.com|generic|passwd&lt;br /&gt;
               .subdomain.example.com|other|otherpw&lt;br /&gt;
               mail@example.com|test|testpass&lt;br /&gt;
               info@example.com:smtp.example.com:26|other|otherpw&lt;br /&gt;
               :mailrelay.example.com:587|e=mc2|testpass&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Control_Files_by_Function&amp;diff=1643</id>
		<title>Control Files by Function</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Control_Files_by_Function&amp;diff=1643"/>
		<updated>2026-04-30T14:04:26Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Configuration#Control Files|Back]]&amp;lt;br&amp;gt;&lt;br /&gt;
Here are the files in /var/qmail/control, listed by function.&lt;br /&gt;
==multilog==&lt;br /&gt;
[[logcount]]&lt;br /&gt;
&lt;br /&gt;
[[logsize]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==qmail-inject==&lt;br /&gt;
[[defaultdomain]]&lt;br /&gt;
&lt;br /&gt;
[[defaulthost]]&lt;br /&gt;
&lt;br /&gt;
[[idhost]]&lt;br /&gt;
&lt;br /&gt;
[[plusdomain]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==qmail-local==&lt;br /&gt;
[[defaultdelivery]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==qmail-qmqpc==&lt;br /&gt;
[[qmqpservers]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==qmail-queue==&lt;br /&gt;
[[taps]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==qmail-remote==&lt;br /&gt;
===Constraints===&lt;br /&gt;
[[timeoutconnect]]&lt;br /&gt;
&lt;br /&gt;
[[timeoutremote]]&lt;br /&gt;
&lt;br /&gt;
===Network===&lt;br /&gt;
[[helohost]]&lt;br /&gt;
&lt;br /&gt;
[[smtproutes]]&lt;br /&gt;
&lt;br /&gt;
[[authsenders]]&lt;br /&gt;
&lt;br /&gt;
===Security===&lt;br /&gt;
[[clientcert.pem]]&lt;br /&gt;
&lt;br /&gt;
[[notlshosts/FQDN]]&lt;br /&gt;
&lt;br /&gt;
[[tlsclientciphers]]&lt;br /&gt;
&lt;br /&gt;
[[tlshosts/exhaustivelist]]&lt;br /&gt;
&lt;br /&gt;
[[tlshosts/FQDN.pem]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==qmail-send==&lt;br /&gt;
&#039;&#039;&#039;WARNING: qmail-send&#039;&#039;&#039; reads its control files only when it starts. If you change the control files, you must stop and restart &#039;&#039;&#039;qmail-send&#039;&#039;&#039;. Exception: If &#039;&#039;&#039;qmail-send&#039;&#039;&#039; receives a HUP signal, it will reload [[locals]] and [[virtualdomains]].&lt;br /&gt;
===Constraints===&lt;br /&gt;
[[concurrencylocal]]&lt;br /&gt;
&lt;br /&gt;
[[concurrencyremote]]&lt;br /&gt;
&lt;br /&gt;
[[queuelifetime]]&lt;br /&gt;
&lt;br /&gt;
===Network===&lt;br /&gt;
[[bouncefrom]]&lt;br /&gt;
&lt;br /&gt;
[[bouncehost]]&lt;br /&gt;
&lt;br /&gt;
[[doublebouncehost]]&lt;br /&gt;
&lt;br /&gt;
[[doublebounceto]]&lt;br /&gt;
&lt;br /&gt;
[[envnoathost]]&lt;br /&gt;
&lt;br /&gt;
[[locals]]&lt;br /&gt;
&lt;br /&gt;
[[percenthack]]&lt;br /&gt;
&lt;br /&gt;
[[virtualdomains]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==qmail-smtpd==&lt;br /&gt;
===Constraints===&lt;br /&gt;
&lt;br /&gt;
[[concurrencyincoming]]&lt;br /&gt;
&lt;br /&gt;
[[databytes]]&lt;br /&gt;
&lt;br /&gt;
[[timeoutsmtpd]]&lt;br /&gt;
&lt;br /&gt;
===Filtering===&lt;br /&gt;
[[badhelo]]&lt;br /&gt;
&lt;br /&gt;
[[badloadertypes.cdb]]&lt;br /&gt;
&lt;br /&gt;
[[badmailfrom]]&lt;br /&gt;
&lt;br /&gt;
[[badmailfromnorelay]]&lt;br /&gt;
&lt;br /&gt;
[[badmailto]]&lt;br /&gt;
&lt;br /&gt;
[[badmailtonorelay]]&lt;br /&gt;
&lt;br /&gt;
[[badmimetypes.cdb]]&lt;br /&gt;
&lt;br /&gt;
[[blacklists]]&lt;br /&gt;
&lt;br /&gt;
====Sender Policy Framework (SPF)====&lt;br /&gt;
[[spfbehavior]]&lt;br /&gt;
&lt;br /&gt;
[[spfexp]]&lt;br /&gt;
&lt;br /&gt;
[[spfguess]]&lt;br /&gt;
&lt;br /&gt;
[[spfrules]]&lt;br /&gt;
&lt;br /&gt;
===Network===&lt;br /&gt;
[[localiphost]]&lt;br /&gt;
&lt;br /&gt;
[[morercpthosts]]&lt;br /&gt;
&lt;br /&gt;
[[rcpthosts]]&lt;br /&gt;
&lt;br /&gt;
[[smtpgreeting]]&lt;br /&gt;
&lt;br /&gt;
===Security===&lt;br /&gt;
[[clientca.pem]]&lt;br /&gt;
&lt;br /&gt;
[[clientcrl.pem]]&lt;br /&gt;
&lt;br /&gt;
[[dh1024.pem]]&lt;br /&gt;
&lt;br /&gt;
[[dh512.pem]]&lt;br /&gt;
&lt;br /&gt;
[[rsa512.pem]]&lt;br /&gt;
&lt;br /&gt;
[[servercert.pem]]&lt;br /&gt;
&lt;br /&gt;
[[tlsclients]]&lt;br /&gt;
&lt;br /&gt;
[[tlsserverciphers]]&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=DKIM&amp;diff=1642</id>
		<title>DKIM</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=DKIM&amp;diff=1642"/>
		<updated>2026-04-21T22:21:34Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Configuration#How_to_Setup_DKIM_with_Qmail_Toaster|Back]]&amp;lt;br&amp;gt;&lt;br /&gt;
Source: [https://manuel.mausz.at/coding/qmail-dkim/ Manuel Mausz&#039;] Perl script&lt;br /&gt;
&lt;br /&gt;
1. DKIM sign all email with global key&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Set up signing framework&#039;&#039;&#039;&lt;br /&gt;
 # yum -y install perl-XML-Simple perl-Mail-DKIM perl-XML-Parser&lt;br /&gt;
 # qmailctl stop&lt;br /&gt;
 # cd /var/qmail/bin&lt;br /&gt;
 # mv qmail-remote qmail-remote.orig&lt;br /&gt;
 &amp;lt;!--# wget -P /var/qmail/bin  https://raw.githubusercontent.com/qmtoaster/dkim/master/qmail-remote--&amp;gt;&lt;br /&gt;
 &amp;lt;!--# wget https://manuel.mausz.at/coding/qmail-dkim/qmail-dkim-0.3.pl--&amp;gt;&lt;br /&gt;
 # wget https://raw.githubusercontent.com/qmtoaster/dkim/master/mail-dkim-0.3.pl&lt;br /&gt;
 # chmod 755 mail-dkim-0.3.pl &amp;amp;&amp;amp; chown root:qmail mail-dkim-0.3.pl&lt;br /&gt;
 # ln -s mail-dkim-0.3.pl qmail-remote&lt;br /&gt;
 # mkdir /var/qmail/control/dkim&lt;br /&gt;
 # chown -R qmailr:qmail /var/qmail/control/dkim&lt;br /&gt;
 # cd /var/qmail/control/dkim&lt;br /&gt;
 # wget https://raw.githubusercontent.com/qmtoaster/dkim/master/signconf.xml&lt;br /&gt;
 # openssl genrsa -out global.key 2048 &amp;amp;&amp;amp; chmod 644 global.key&lt;br /&gt;
 # openssl rsa -in global.key -pubout -out global.txt&lt;br /&gt;
 # perl -pi -e &#039;s/-----BEGIN PUBLIC KEY-----/dkim1._domainkey IN TXT &amp;quot;k=rsa; p=/g; s/-----END PUBLIC KEY-----/&amp;quot;/g; s/\n//g&#039; global.txt&lt;br /&gt;
 # qmailctl start&lt;br /&gt;
 # cat signconf.xml&amp;lt;span style=&amp;quot;color:tomato&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;dkimsign&amp;gt;&lt;br /&gt;
  &amp;amp;lt;!-- per default sign all mails using dkim --&amp;amp;gt;&lt;br /&gt;
  &amp;lt;global algorithm=&amp;quot;rsa-sha256&amp;quot; domain=&amp;quot;/var/qmail/control/me&amp;quot; keyfile=&amp;quot;/var/qmail/control/dkim/global.key&amp;quot; method=&amp;quot;simple&amp;quot; selector=&amp;quot;dkim1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;types id=&amp;quot;dkim&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;types id=&amp;quot;domainkey&amp;quot; method=&amp;quot;nofws&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/global&amp;gt;&lt;br /&gt;
 &amp;lt;/dkimsign&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 # cat global.txt&amp;lt;span style=&amp;quot;color:tomato&amp;quot;&amp;gt;&lt;br /&gt;
  dkim1._domainkey      IN      TXT     &amp;quot;k=rsa; p=******************************&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;Create DNS TXT record from the above file &#039;public.txt&#039;&#039;&#039;&#039;&lt;br /&gt;
  Host                                Text&lt;br /&gt;
  dkim1._domainkey       	v=DKIM1; k=rsa; p=*************************&amp;lt;br&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;Your DKIM global key setup is done. Send email to Yahoo or GMail, inspect header.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
2. DKIM sign domain with specific key&lt;br /&gt;
 # cd /var/qmail/control/dkim&lt;br /&gt;
 # openssl genrsa -out dom.com.key 2048 &amp;amp;&amp;amp; chmod 644 dom.com.key&lt;br /&gt;
 # openssl rsa -in dom.com.key -pubout -out dom.com.txt&lt;br /&gt;
 # perl -pi -e &#039;s/-----BEGIN PUBLIC KEY-----/dkim1._domainkey IN TXT &amp;quot;k=rsa; p=/g; s/-----END PUBLIC KEY-----/&amp;quot;/g; s/\n//g&#039; dom.com.txt&lt;br /&gt;
 # cat dom.com.txt&amp;lt;span style=&amp;quot;color:tomato&amp;quot;&amp;gt;&lt;br /&gt;
  dkim1._domainkey       IN      TXT     &amp;quot;k=rsa; p=******************************&amp;quot;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;Create DNS TXT record from the above file &#039;dom.com.txt&#039;&#039;&#039;&#039;&lt;br /&gt;
 Host                                Text&lt;br /&gt;
  dkim1._domainkey       	v=DKIM1; k=rsa; p=*************************&amp;lt;br&amp;gt;&lt;br /&gt;
 # cat signconf.xml&amp;lt;span style=&amp;quot;color:tomato&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;dkimsign&amp;gt;&lt;br /&gt;
  &amp;amp;lt;!-- per default sign all mails using dkim --&amp;amp;gt;&lt;br /&gt;
  &amp;lt;global algorithm=&amp;quot;rsa-sha256&amp;quot; domain=&amp;quot;/var/qmail/control/me&amp;quot; keyfile=&amp;quot;/var/qmail/control/dkim/global.key&amp;quot; method=&amp;quot;simple&amp;quot; selector=&amp;quot;dkim1&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;types id=&amp;quot;dkim&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;types id=&amp;quot;domainkey&amp;quot; method=&amp;quot;nofws&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/global&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
  &amp;amp;lt;!-- dkim sign dom.com --&amp;amp;gt;&lt;br /&gt;
  &amp;lt;dom.com domain=&amp;quot;dom.com&amp;quot; keyfile=&amp;quot;/var/qmail/control/dkim/dom.com.key&amp;quot; selector=&amp;quot;dkim1&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;types id=&amp;quot;dkim&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;types id=&amp;quot;domainkey&amp;quot; method=&amp;quot;nofws&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/dom.com&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/strong&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;/dkimsign&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
3. DKIM no signing for domain&lt;br /&gt;
&lt;br /&gt;
 # cd /var/qmail/control/dkim&lt;br /&gt;
 # cat signconf.xml&amp;lt;span style=&amp;quot;color:tomato&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;dkimsign&amp;gt;&lt;br /&gt;
  &amp;amp;lt;!-- per default sign all mails using dkim --&amp;amp;gt;&lt;br /&gt;
  &amp;lt;global algorithm=&amp;quot;rsa-sha256&amp;quot; domain=&amp;quot;/var/qmail/control/me&amp;quot; keyfile=&amp;quot;/var/qmail/control/dkim/global.key&amp;quot; method=&amp;quot;simple&amp;quot; selector=&amp;quot;dkim1&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;types id=&amp;quot;dkim&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;types id=&amp;quot;domainkey&amp;quot; method=&amp;quot;nofws&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/global&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
  &amp;amp;lt;!-- dkim sign dom.com --&amp;amp;gt;&lt;br /&gt;
  &amp;lt;dom.com domain=&amp;quot;dom.com&amp;quot; keyfile=&amp;quot;/var/qmail/control/dkim/dom.com.key&amp;quot; selector=&amp;quot;dkim1&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;types id=&amp;quot;dkim&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;types id=&amp;quot;domainkey&amp;quot; method=&amp;quot;nofws&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/dom.com&amp;gt;&amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;&amp;lt;strong&amp;gt;&lt;br /&gt;
  &amp;amp;lt;!-- no dkim signing nosigndom.com --&amp;amp;gt;&lt;br /&gt;
  &amp;lt;nosigndom.com /&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/strong&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;/dkimsign&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. DKIM verification (Spamassassin preferred):&lt;br /&gt;
&lt;br /&gt;
 Assumes:  &lt;br /&gt;
   a. &#039;QMAILQUEUE=&amp;quot;/var/qmail/bin/simscan&amp;quot;&#039; defined in /etc/tcprules.d/tcp.smtp &lt;br /&gt;
   b. /var/qmail/bin/qmail-queue is a link.&lt;br /&gt;
   c. &#039;export DKVERIFY=1&#039; and &#039;/usr/bin/softlimit -m 128000000&#039; in /var/qmail/supervise/smtp/run&lt;br /&gt;
 # qmailctl stop&lt;br /&gt;
 # cd /var/qmail/bin&lt;br /&gt;
 # wget http://www.qmailtoaster.org/dkimverify.pl&lt;br /&gt;
 # wget http://www.qmailtoaster.org/qmail-queue.pl.sh&lt;br /&gt;
 # chown root:root dkimverify.pl&lt;br /&gt;
 # chown qmailq:qmail qmail-queue.pl.sh&lt;br /&gt;
 # chmod 755 dkimverify.pl&lt;br /&gt;
 # chmod 4777 qmail-queue.pl.sh&lt;br /&gt;
 # unlink qmail-queue&lt;br /&gt;
 # ln -s qmail-queue.pl.sh qmail-queue&lt;br /&gt;
 # qmailctl start&lt;br /&gt;
 Send email to user on the host&lt;br /&gt;
 Check email header dkim verification&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Notes: &lt;br /&gt;
 1) In order to test your settings, simply send an email to: check-auth@verifier.port25.com and/or check-auth2@verifier.port25.com&lt;br /&gt;
    with the suject of &amp;quot;test&amp;quot; (without the quotes) and &amp;quot;Just testing&amp;quot; in the body (also without quotes). It is best but not required&lt;br /&gt;
    to have a subject and body because this service will also show you how spamassassin rated your email. If you have a GMAIL/Yahoo&lt;br /&gt;
    email account sending to either or both accounts DKIM signatures could be verified.&lt;br /&gt;
    Click to test&lt;br /&gt;
 2) To test your DKIM signature wiith OpenDKIM&#039;s &#039;opendkim-testkey&#039; utility install opendkim and run the utility:&lt;br /&gt;
    a) # yum install epel-release opendkim*&lt;br /&gt;
    b) # opendkim-testkey -vvvv -d otherdomain.com  -k /var/qmail/control/dkim/otherdomain.com.key -s dkim1&amp;lt;br&amp;gt;&lt;br /&gt;
         opendkim-testkey: using default configfile /etc/opendkim.conf&lt;br /&gt;
         opendkim-testkey: /var/qmail/control/dkim/otherdomain.com.key: WARNING: unsafe permissions&lt;br /&gt;
         opendkim-testkey: key loaded from /var/qmail/control/dkim/otherdomain.com.key&lt;br /&gt;
         opendkim-testkey: checking key &#039;dkim1._domainkey.otherdomain.com&#039;&lt;br /&gt;
         opendkim-testkey: key OK&amp;lt;br&amp;gt;&lt;br /&gt;
 3) Testing DKIM signatures sending from Roundcube webmail I found that plain text formatted email caused DKIM failure sending&lt;br /&gt;
    to port25.com and GMAIL recipients, but when sending the same email in Roundcube&#039;s html format the DKIM signature was verified&lt;br /&gt;
    and passed. The same email DKIM signature passed with Squirrelmail, Thunderbird, and OpenDKIM&#039;s &#039;opendkim-testkey&#039; program. It &lt;br /&gt;
    seems that certain email clients will add or subtract characters in the email header causing DKIM to fail. This may be happening &lt;br /&gt;
    in Roundcube while other clients do not affect the email header adversely. I have a help request in the Roundcube user&#039;s list&lt;br /&gt;
    for this issue. Hopefully, this issue is  merely a configuration setting, if not, that it is resolved soon.&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1641</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1641"/>
		<updated>2025-08-23T19:39:32Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &#039;&#039;&#039;Systemd conversion&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 # /etc/init.d/vusaged stop&lt;br /&gt;
 # qmailctl stop&lt;br /&gt;
 # unlink /usr/bin/qmailctl&lt;br /&gt;
 # mv /etc/init.d/qmail /etc/init.d/vusaged /var/qmail/bin&lt;br /&gt;
 # ln -s /var/qmail/bin/qmail /usr/bin/qmailctl&lt;br /&gt;
&lt;br /&gt;
 # cat &amp;gt; /etc/systemd/system/qmail.service &amp;lt;&amp;lt;EOF&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Documentation=man:systemd-sysv-generator(8)&lt;br /&gt;
 SourcePath=/var/qmail/bin/qmail&lt;br /&gt;
 Description=SYSV: Qmailtoaster MTA&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=graphical.target&amp;lt;br&amp;gt;&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 Restart=no&lt;br /&gt;
 TimeoutSec=5min&lt;br /&gt;
 IgnoreSIGPIPE=no&lt;br /&gt;
 KillMode=process&lt;br /&gt;
 GuessMainPID=no&lt;br /&gt;
 RemainAfterExit=yes&lt;br /&gt;
 ExecStart=/var/qmail/bin/qmail start&lt;br /&gt;
 ExecStop=/var/qmail/bin/qmail stop&lt;br /&gt;
 ExecReload=/var/qmail/bin/qmail reload&amp;lt;br&amp;gt;&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/systemd/system/vusaged.service&amp;lt;&amp;lt;EOF&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=Usaged Service&lt;br /&gt;
 After=network.target&amp;lt;br&amp;gt;&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 ExecStart=/var/qmail/bin/vusaged start&lt;br /&gt;
 ExecStop=/var/qmail/bin/vusaged stop&lt;br /&gt;
 ExecReload=/var/qmail/bin/vusaged reload&lt;br /&gt;
 Restart=on-failure&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
 # systemctl enable --now qmail vusaged&lt;br /&gt;
&lt;br /&gt;
 Notes: All qmailctl functionlity is still intact.&lt;br /&gt;
        start, stop, restart, status, and reload can be accomplished with the command &#039;systemctl [command] qmail&#039;&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1640</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1640"/>
		<updated>2025-08-23T19:38:27Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &#039;&#039;&#039;Systemd conversion&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 # /etc/init.d/vusaged stop&lt;br /&gt;
 # qmailctl stop&lt;br /&gt;
 # unlink /usr/bin/qmailctl&lt;br /&gt;
 # mv /etc/init.d/qmail /etc/init.d/vusaged /var/qmail/bin&lt;br /&gt;
 # ln -s /var/qmail/bin/qmail /usr/bin/qmailctl&lt;br /&gt;
&lt;br /&gt;
 # cat &amp;gt; /etc/systemd/system/qmail.service &amp;lt;&amp;lt;EOF&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Documentation=man:systemd-sysv-generator(8)&lt;br /&gt;
 SourcePath=/var/qmail/bin/qmail&lt;br /&gt;
 Description=SYSV: Qmailtoaster MTA&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=graphical.target&amp;lt;br&amp;gt;&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 Restart=no&lt;br /&gt;
 TimeoutSec=5min&lt;br /&gt;
 IgnoreSIGPIPE=no&lt;br /&gt;
 KillMode=process&lt;br /&gt;
 GuessMainPID=no&lt;br /&gt;
 RemainAfterExit=yes&lt;br /&gt;
 ExecStart=/var/qmail/bin/qmail start&lt;br /&gt;
 ExecStop=/var/qmail/bin/qmail stop&lt;br /&gt;
 ExecReload=/var/qmail/bin/qmail reload&amp;lt;br&amp;gt;&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/systemd/system/vusaged.service&amp;lt;&amp;lt;EOF&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=Usaged Service&lt;br /&gt;
 After=network.target&amp;lt;br&amp;gt;&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 ExecStart=/var/qmail/bin/vusaged start&lt;br /&gt;
 ExecStop=/var/qmail/bin/vusaged stop&lt;br /&gt;
 ExecReload=/var/qmail/bin/vusaged reload&lt;br /&gt;
 Restart=on-failure&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
 Notes: All qmailctl functionlity is still intact.&lt;br /&gt;
        start, stop, restart, status, and reload can be accomplished with the command &#039;systemctl [command] qmail&#039;&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1639</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1639"/>
		<updated>2025-08-23T19:36:32Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &#039;&#039;&#039;Systemd conversion&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 # kill `cat /run/vusaged.pid`&lt;br /&gt;
 # unlink /usr/bin/qmailctl&lt;br /&gt;
 # mv /etc/init.d/qmail /etc/init.d/vusaged /var/qmail/bin&lt;br /&gt;
 # ln -s /var/qmail/bin/qmail /usr/bin/qmailctl&lt;br /&gt;
&lt;br /&gt;
 # cat &amp;gt; /etc/systemd/system/qmail.service &amp;lt;&amp;lt;EOF&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Documentation=man:systemd-sysv-generator(8)&lt;br /&gt;
 SourcePath=/var/qmail/bin/qmail&lt;br /&gt;
 Description=SYSV: Qmailtoaster MTA&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=graphical.target&amp;lt;br&amp;gt;&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 Restart=no&lt;br /&gt;
 TimeoutSec=5min&lt;br /&gt;
 IgnoreSIGPIPE=no&lt;br /&gt;
 KillMode=process&lt;br /&gt;
 GuessMainPID=no&lt;br /&gt;
 RemainAfterExit=yes&lt;br /&gt;
 ExecStart=/var/qmail/bin/qmail start&lt;br /&gt;
 ExecStop=/var/qmail/bin/qmail stop&lt;br /&gt;
 ExecReload=/var/qmail/bin/qmail reload&amp;lt;br&amp;gt;&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/systemd/system/vusaged.service&amp;lt;&amp;lt;EOF&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=Usaged Service&lt;br /&gt;
 After=network.target&amp;lt;br&amp;gt;&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 ExecStart=/var/qmail/bin/vusaged start&lt;br /&gt;
 ExecStop=/var/qmail/bin/vusaged stop&lt;br /&gt;
 ExecReload=/var/qmail/bin/vusaged reload&lt;br /&gt;
 Restart=on-failure&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 # systemctl daemon-reload&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
 Notes: All qmailctl functionlity is still intact.&lt;br /&gt;
        start, stop, restart, status, and reload can be accomplished with the command &#039;systemctl [command] qmail&#039;&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1638</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1638"/>
		<updated>2025-08-23T19:23:01Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &#039;&#039;&#039;Systemd conversion&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 # unlink /usr/bin/qmailctl&lt;br /&gt;
 # mv /etc/init.d/qmail /etc/init.d/vusaged /var/qmail/bin&lt;br /&gt;
 # ln -s /var/qmail/bin/qmail /usr/bin/qmailctl&lt;br /&gt;
&lt;br /&gt;
 # cat &amp;gt; /etc/systemd/system/qmail.service &amp;lt;&amp;lt;EOF&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Documentation=man:systemd-sysv-generator(8)&lt;br /&gt;
 SourcePath=/var/qmail/bin/qmail&lt;br /&gt;
 Description=SYSV: Qmailtoaster MTA&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=graphical.target&amp;lt;br&amp;gt;&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 Restart=no&lt;br /&gt;
 TimeoutSec=5min&lt;br /&gt;
 IgnoreSIGPIPE=no&lt;br /&gt;
 KillMode=process&lt;br /&gt;
 GuessMainPID=no&lt;br /&gt;
 RemainAfterExit=yes&lt;br /&gt;
 ExecStart=/var/qmail/bin/qmail start&lt;br /&gt;
 ExecStop=/var/qmail/bin/qmail stop&lt;br /&gt;
 ExecReload=/var/qmail/bin/qmail reload&amp;lt;br&amp;gt;&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/systemd/system/vusaged.service&amp;lt;&amp;lt;EOF&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=Usaged Service&lt;br /&gt;
 After=network.target&amp;lt;br&amp;gt;&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 ExecStart=/var/qmail/bin/vusaged start&lt;br /&gt;
 ExecStop=/var/qmail/bin/vusaged stop&lt;br /&gt;
 ExecReload=/var/qmail/bin/vusaged reload&lt;br /&gt;
 Restart=on-failure&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
 Notes: All qmailctl functionlity is still intact.&lt;br /&gt;
        start, stop, restart, status, and reload can be accomplished with the command &#039;systemctl [command] qmail&#039;&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1637</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1637"/>
		<updated>2025-08-23T19:22:29Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &#039;&#039;&#039;Systemd conversion&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 # unlink /usr/bin/qmailctl&lt;br /&gt;
 # mv /etc/init.d/qmail /etc/init.d/vusaged /var/qmail/bin&lt;br /&gt;
 # ln -s /var/qmail/bin/qmail /usr/bin/qmailctl&lt;br /&gt;
&lt;br /&gt;
 # cat &amp;gt; /etc/systemd/system/qmail.service &amp;lt;&amp;lt;EOF&lt;br /&gt;
 # Automatically generated by systemd-sysv-generator&amp;lt;br&amp;gt;&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Documentation=man:systemd-sysv-generator(8)&lt;br /&gt;
 SourcePath=/var/qmail/bin/qmail&lt;br /&gt;
 Description=SYSV: Qmailtoaster MTA&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=graphical.target&amp;lt;br&amp;gt;&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 Restart=no&lt;br /&gt;
 TimeoutSec=5min&lt;br /&gt;
 IgnoreSIGPIPE=no&lt;br /&gt;
 KillMode=process&lt;br /&gt;
 GuessMainPID=no&lt;br /&gt;
 RemainAfterExit=yes&lt;br /&gt;
 ExecStart=/var/qmail/bin/qmail start&lt;br /&gt;
 ExecStop=/var/qmail/bin/qmail stop&lt;br /&gt;
 ExecReload=/var/qmail/bin/qmail reload&amp;lt;br&amp;gt;&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/systemd/system/vusaged.service&amp;lt;&amp;lt;EOF&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=Usaged Service&lt;br /&gt;
 After=network.target&amp;lt;br&amp;gt;&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 ExecStart=/var/qmail/bin/vusaged start&lt;br /&gt;
 ExecStop=/var/qmail/bin/vusaged stop&lt;br /&gt;
 ExecReload=/var/qmail/bin/vusaged reload&lt;br /&gt;
 Restart=on-failure&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
 Notes: All qmailctl functionlity is still intact.&lt;br /&gt;
        start, stop, restart, status, and reload can be accomplished with the command &#039;systemctl [command] qmail&#039;&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1636</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1636"/>
		<updated>2025-08-23T19:21:44Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &#039;&#039;&#039;Systemd conversion&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 # unlink /usr/bin/qmailctl&lt;br /&gt;
 # mv /etc/init.d/qmail /etc/init.d/vusaged /var/qmail/bin&lt;br /&gt;
 # ln -s /var/qmail/bin/qmail /usr/bin/qmailctl&lt;br /&gt;
&lt;br /&gt;
 # cat &amp;gt; /etc/systemd/system/qmail.service &amp;lt;&amp;lt;EOF&lt;br /&gt;
 # Automatically generated by systemd-sysv-generator&amp;lt;br&amp;gt;&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Documentation=man:systemd-sysv-generator(8)&lt;br /&gt;
 SourcePath=/var/qmail/bin/qmail&lt;br /&gt;
 Description=SYSV: Qmailtoaster MTA&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=graphical.target&amp;lt;br&amp;gt;&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 Restart=no&lt;br /&gt;
 TimeoutSec=5min&lt;br /&gt;
 IgnoreSIGPIPE=no&lt;br /&gt;
 KillMode=process&lt;br /&gt;
 GuessMainPID=no&lt;br /&gt;
 RemainAfterExit=yes&lt;br /&gt;
 ExecStart=/var/qmail/bin/qmail start&lt;br /&gt;
 ExecStop=/var/qmail/bin/qmail stop&lt;br /&gt;
 ExecReload=/var/qmail/bin/qmail reload&amp;lt;br&amp;gt;&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt; /etc/systemd/system/vusaged.service&amp;lt;&amp;lt;EOF&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=Usaged Service&lt;br /&gt;
 After=network.target&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 ExecStart=/var/qmail/bin/vusaged start&lt;br /&gt;
 ExecStop=/var/qmail/bin/vusaged stop&lt;br /&gt;
 ExecReload=/var/qmail/bin/vusaged reload&lt;br /&gt;
 Restart=on-failure&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
 Notes: All qmailctl functionlity is still intact.&lt;br /&gt;
        start, stop, restart, status, and reload can be accomplished with the command &#039;systemctl [command] qmail&#039;&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1635</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1635"/>
		<updated>2025-08-23T14:11:17Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &#039;&#039;&#039;Systemd conversion&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 # unlink /usr/bin/qmailctl&lt;br /&gt;
 # mv /etc/init.d/qmail /etc/init.d/vusaged /var/qmail/bin&lt;br /&gt;
 # ln -s /var/qmail/bin/qmail /usr/bin/qmailctl&lt;br /&gt;
&lt;br /&gt;
 # cat &amp;gt; /etc/systemd/system/qmail.service &amp;lt;&amp;lt;EOF&lt;br /&gt;
 # Automatically generated by systemd-sysv-generator&amp;lt;br&amp;gt;&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Documentation=man:systemd-sysv-generator(8)&lt;br /&gt;
 SourcePath=/var/qmail/bin/qmail&lt;br /&gt;
 Description=SYSV: Qmailtoaster MTA&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=graphical.target&amp;lt;br&amp;gt;&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 Restart=no&lt;br /&gt;
 TimeoutSec=5min&lt;br /&gt;
 IgnoreSIGPIPE=no&lt;br /&gt;
 KillMode=process&lt;br /&gt;
 GuessMainPID=no&lt;br /&gt;
 RemainAfterExit=yes&lt;br /&gt;
 ExecStart=/var/qmail/bin/qmail start&lt;br /&gt;
 ExecStop=/var/qmail/bin/qmail stop&lt;br /&gt;
 ExecReload=/var/qmail/bin/qmail reload&amp;lt;br&amp;gt;&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
 Notes: All qmailctl functionlity is still intact.&lt;br /&gt;
        start, stop, restart, status, and reload can be accomplished with the command &#039;systemctl [command] qmail&#039;&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1634</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1634"/>
		<updated>2025-08-22T19:10:07Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &#039;&#039;&#039;Systemd conversion&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 # unlink /usr/bin/qmailctl&lt;br /&gt;
 # mv /etc/init.d/qmail /etc/init.d/vusaged /var/qmail/bin&lt;br /&gt;
 # ln -s /var/qmail/bin/qmail /usr/bin/qmailctl&lt;br /&gt;
&lt;br /&gt;
 # cat &amp;gt; /etc/systemd/system/qmail.service &amp;lt;&amp;lt;EOF&lt;br /&gt;
 # Automatically generated by systemd-sysv-generator&amp;lt;br&amp;gt;&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Documentation=man:systemd-sysv-generator(8)&lt;br /&gt;
 SourcePath=/var/qmail/bin/qmail&lt;br /&gt;
 Description=SYSV: Qmailtoaster MTA&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=graphical.target&amp;lt;br&amp;gt;&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 Restart=no&lt;br /&gt;
 TimeoutSec=5min&lt;br /&gt;
 IgnoreSIGPIPE=no&lt;br /&gt;
 KillMode=process&lt;br /&gt;
 GuessMainPID=no&lt;br /&gt;
 RemainAfterExit=yes&lt;br /&gt;
 ExecStart=/var/qmail/bin/qmail start&lt;br /&gt;
 ExecStop=/var/qmail/bin/qmail stop&lt;br /&gt;
 ExecReload=/var/qmail/bin/qmail reload&amp;lt;br&amp;gt;&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
 Notes: All qmailctl functionlity is still intact.&lt;br /&gt;
        start, stop, status, and reload can be accomplished with the command &#039;systemctl [command] qmail&#039;&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1633</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1633"/>
		<updated>2025-08-22T19:07:43Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &#039;&#039;&#039;Systemd conversion&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 # unlink /usr/bin/qmailctl&lt;br /&gt;
 # mv /etc/init.d/qmail /etc/init.d/vusaged /var/qmail/bin&lt;br /&gt;
 # ln -s /var/qmail/bin/qmail /usr/bin/qmailctl&lt;br /&gt;
&lt;br /&gt;
 # cat &amp;gt; /etc/systemd/system/qmail.service &amp;lt;&amp;lt;EOF&lt;br /&gt;
 # Automatically generated by systemd-sysv-generator&amp;lt;br&amp;gt;&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Documentation=man:systemd-sysv-generator(8)&lt;br /&gt;
 SourcePath=/var/qmail/bin/qmail&lt;br /&gt;
 Description=SYSV: Qmailtoaster MTA&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=graphical.target&amp;lt;br&amp;gt;&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 Restart=no&lt;br /&gt;
 TimeoutSec=5min&lt;br /&gt;
 IgnoreSIGPIPE=no&lt;br /&gt;
 KillMode=process&lt;br /&gt;
 GuessMainPID=no&lt;br /&gt;
 RemainAfterExit=yes&lt;br /&gt;
 ExecStart=/var/qmail/bin/qmail start&lt;br /&gt;
 ExecStop=/var/qmail/bin/qmail stop&lt;br /&gt;
 ExecReload=/var/qmail/bin/qmail reload&amp;lt;br&amp;gt;&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
 Notes: All qmailctl functionlity is still intact.&lt;br /&gt;
        start, stop, status, and reload can be accomplished with the command &#039;systemctl [command] qmail&#039;&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1632</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1632"/>
		<updated>2025-08-22T19:05:48Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &#039;&#039;&#039;Systemd conversion&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 # unlink /usr/bin/qmailctl&lt;br /&gt;
 # mv /etc/init.d/qmail /etc/init.d/vusaged /var/qmail/bin&lt;br /&gt;
 # ln -s /var/qmail/bin/qmail /usr/bin/qmailctl&lt;br /&gt;
&lt;br /&gt;
 # cat &amp;gt; /etc/systemd/system/qmail.service &amp;lt;&amp;lt;EOF&lt;br /&gt;
 # Automatically generated by systemd-sysv-generator&amp;lt;br&amp;gt;&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Documentation=man:systemd-sysv-generator(8)&lt;br /&gt;
 SourcePath=/var/qmail/bin/qmail&lt;br /&gt;
 Description=SYSV: Qmailtoaster MTA&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=graphical.target&amp;lt;br&amp;gt;&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 Restart=no&lt;br /&gt;
 TimeoutSec=5min&lt;br /&gt;
 IgnoreSIGPIPE=no&lt;br /&gt;
 KillMode=process&lt;br /&gt;
 GuessMainPID=no&lt;br /&gt;
 RemainAfterExit=yes&lt;br /&gt;
 ExecStart=/var/qmail/bin/qmail start&lt;br /&gt;
 ExecStop=/var/qmail/bin/qmail stop&lt;br /&gt;
 ExecReload=/var/qmail/bin/qmail reload&amp;lt;br&amp;gt;&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
 Notes: All qmailctl functionlity is still intact.&lt;br /&gt;
        Starting, stopping, and reloading qmail can be accomplished with the command systemctl &#039;command&#039; qmail&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Rocky,_Alma,_Springdale_10_QT_Install&amp;diff=1631</id>
		<title>Rocky, Alma, Springdale 10 QT Install</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Rocky,_Alma,_Springdale_10_QT_Install&amp;diff=1631"/>
		<updated>2025-08-22T19:03:30Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page#RHEL_10_&amp;amp;_Derivatives|Back]]&amp;lt;br&amp;gt;&lt;br /&gt;
=Enterprise Linux 10 Minimal Install= &lt;br /&gt;
==QMT Install (&#039;Many-Domain&#039;)== &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; curl -o /usr/local/bin/qt_install https://raw.githubusercontent.com/qmtoaster/scripts/master/qt_install_el10.sh&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; chmod 755 /usr/local/bin/qt_install&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; qt_install&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; ...installing... &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; toaststat&amp;lt;br&amp;gt;&lt;br /&gt;
 Status of toaster services&lt;br /&gt;
 send: up (pid 1323) 1517 seconds&lt;br /&gt;
 smtp: up (pid 1324) 1517 seconds&lt;br /&gt;
 submission: up (pid 1325) 1517 seconds&lt;br /&gt;
 send/log: up (pid 1316) 1517 seconds&lt;br /&gt;
 smtp/log: up (pid 1311) 1517 seconds&lt;br /&gt;
 submission/log: up (pid 1314) 1517 seconds&amp;lt;br&amp;gt;&lt;br /&gt;
 systemd service:               clamd@scan:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:         clamav-freshclam:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:             spamassassin:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  dovecot:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  mariadb:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    httpd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    named:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                     ntpd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                     sshd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  network:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    crond:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    acpid:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                      atd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                   autofs:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                   smartd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:               irqbalance:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;] (Multiple processors only)&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; [https://raw.githubusercontent.com/qmtoaster/scripts/master/conntest conntest]&lt;br /&gt;
 Enter a valid remote email account to which QMT will send mail: &amp;lt;email address&amp;gt;&lt;br /&gt;
 IMAPS: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
 Submission: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
 SMTPS: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [http://wiki.qmailtoaster.org/index.php?title=Simscan Scanners]&lt;br /&gt;
 [http://wiki.qmailtoaster.org/index.php?title=Alias_Domains Many Domain Install (Alias Domain)]&lt;br /&gt;
 Qmail-1.03-3.3.12 (OpenSSL3)&lt;br /&gt;
 [https://github.com/qmtoaster/patches/blob/master/EL9/README.md Patches] applied&lt;br /&gt;
&lt;br /&gt;
== systemd ==&lt;br /&gt;
 [http://wiki.qmailtoaster.org/index.php?title=Systemd Systemd conversion]&lt;br /&gt;
&lt;br /&gt;
== Install certificate ==&lt;br /&gt;
  [[Certificate]] *Note: The certificate must be 2048 bits or more&lt;br /&gt;
== Test certificate ==&lt;br /&gt;
  # curl --verbose smtps://mail.domain.tld&lt;br /&gt;
  # curl --verbose imaps://mail.domain.tld&lt;br /&gt;
or&lt;br /&gt;
  # openssl s_client mail.domain.tld:465&lt;br /&gt;
  # openssl s_client mail.domain.tld:993 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Server certificate:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  subject: CN=mail.domain.tld&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  start date: Jul 30 09:16:16 2024 GMT&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  expire date: Oct 28 09:16:15 2024 GMT&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  subjectAltName: host &amp;quot;mail.domain.tld&amp;quot; matched cert&#039;s &amp;quot;mail.domain.tld&amp;quot;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  issuer: C=US; O=Let&#039;s Encrypt; CN=R11&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  SSL certificate verify ok.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the following error is encountered when testing the new certificate the certificate is most likely less than 2048 bits&lt;br /&gt;
&lt;br /&gt;
 806B7387577F0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:ssl/record/ssl3_record.c:354&lt;br /&gt;
&lt;br /&gt;
Usually Let&#039;s Encrypt certificates are at least 2048 bits, but encountering 256 bits keys is possible. Correct by specifying the number of bits:&lt;br /&gt;
&lt;br /&gt;
 certbot renew --cert-name -d domain.tld -d mail.domain.tld --apache &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;--rsa-key-size 2048 --key-type rsa&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Rocky,_Alma,_Springdale_10_QT_Install&amp;diff=1630</id>
		<title>Rocky, Alma, Springdale 10 QT Install</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Rocky,_Alma,_Springdale_10_QT_Install&amp;diff=1630"/>
		<updated>2025-08-22T19:02:25Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: /* systemd */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page#RHEL_10_&amp;amp;_Derivatives|Back]]&amp;lt;br&amp;gt;&lt;br /&gt;
=Enterprise Linux 10 Minimal Install= &lt;br /&gt;
==QMT Install (&#039;Many-Domain&#039;)== &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; curl -o /usr/local/bin/qt_install https://raw.githubusercontent.com/qmtoaster/scripts/master/qt_install_el10.sh&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; chmod 755 /usr/local/bin/qt_install&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; qt_install&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; ...installing... &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; toaststat&amp;lt;br&amp;gt;&lt;br /&gt;
 Status of toaster services&lt;br /&gt;
 send: up (pid 1323) 1517 seconds&lt;br /&gt;
 smtp: up (pid 1324) 1517 seconds&lt;br /&gt;
 submission: up (pid 1325) 1517 seconds&lt;br /&gt;
 send/log: up (pid 1316) 1517 seconds&lt;br /&gt;
 smtp/log: up (pid 1311) 1517 seconds&lt;br /&gt;
 submission/log: up (pid 1314) 1517 seconds&amp;lt;br&amp;gt;&lt;br /&gt;
 systemd service:               clamd@scan:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:         clamav-freshclam:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:             spamassassin:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  dovecot:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  mariadb:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    httpd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    named:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                     ntpd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                     sshd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  network:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    crond:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    acpid:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                      atd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                   autofs:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                   smartd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:               irqbalance:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;] (Multiple processors only)&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; [https://raw.githubusercontent.com/qmtoaster/scripts/master/conntest conntest]&lt;br /&gt;
 Enter a valid remote email account to which QMT will send mail: &amp;lt;email address&amp;gt;&lt;br /&gt;
 IMAPS: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
 Submission: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
 SMTPS: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [http://wiki.qmailtoaster.org/index.php?title=Simscan Scanners]&lt;br /&gt;
 [http://wiki.qmailtoaster.org/index.php?title=Alias_Domains Many Domain Install (Alias Domain)]&lt;br /&gt;
 Qmail-1.03-3.3.12 (OpenSSL3)&lt;br /&gt;
 [https://github.com/qmtoaster/patches/blob/master/EL9/README.md Patches] applied&lt;br /&gt;
&lt;br /&gt;
== systemd ==&lt;br /&gt;
 http://wiki.qmailtoaster.org/index.php?title=Systemd&lt;br /&gt;
&lt;br /&gt;
== Install certificate ==&lt;br /&gt;
  [[Certificate]] *Note: The certificate must be 2048 bits or more&lt;br /&gt;
== Test certificate ==&lt;br /&gt;
  # curl --verbose smtps://mail.domain.tld&lt;br /&gt;
  # curl --verbose imaps://mail.domain.tld&lt;br /&gt;
or&lt;br /&gt;
  # openssl s_client mail.domain.tld:465&lt;br /&gt;
  # openssl s_client mail.domain.tld:993 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Server certificate:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  subject: CN=mail.domain.tld&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  start date: Jul 30 09:16:16 2024 GMT&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  expire date: Oct 28 09:16:15 2024 GMT&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  subjectAltName: host &amp;quot;mail.domain.tld&amp;quot; matched cert&#039;s &amp;quot;mail.domain.tld&amp;quot;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  issuer: C=US; O=Let&#039;s Encrypt; CN=R11&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  SSL certificate verify ok.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the following error is encountered when testing the new certificate the certificate is most likely less than 2048 bits&lt;br /&gt;
&lt;br /&gt;
 806B7387577F0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:ssl/record/ssl3_record.c:354&lt;br /&gt;
&lt;br /&gt;
Usually Let&#039;s Encrypt certificates are at least 2048 bits, but encountering 256 bits keys is possible. Correct by specifying the number of bits:&lt;br /&gt;
&lt;br /&gt;
 certbot renew --cert-name -d domain.tld -d mail.domain.tld --apache &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;--rsa-key-size 2048 --key-type rsa&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1629</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1629"/>
		<updated>2025-08-22T19:00:09Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &#039;&#039;&#039;Systemd conversion&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 # unlink /usr/bin/qmailctl&lt;br /&gt;
 # mv /etc/init.d/qmail /etc/init.d/vusaged /var/qmail/bin&lt;br /&gt;
 # ln -s /var/qmail/bin/qmail /usr/bin/qmailctl&lt;br /&gt;
&lt;br /&gt;
 # cat &amp;gt; /etc/systemd/system/qmail.service &amp;lt;&amp;lt;EOF&lt;br /&gt;
 # Automatically generated by systemd-sysv-generator&amp;lt;br&amp;gt;&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Documentation=man:systemd-sysv-generator(8)&lt;br /&gt;
 SourcePath=/var/qmail/bin/qmail&lt;br /&gt;
 Description=SYSV: Qmailtoaster MTA&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=graphical.target&amp;lt;br&amp;gt;&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 Restart=no&lt;br /&gt;
 TimeoutSec=5min&lt;br /&gt;
 IgnoreSIGPIPE=no&lt;br /&gt;
 KillMode=process&lt;br /&gt;
 GuessMainPID=no&lt;br /&gt;
 RemainAfterExit=yes&lt;br /&gt;
 ExecStart=/var/qmail/bin/qmail start&lt;br /&gt;
 ExecStop=/var/qmail/bin/qmail stop&lt;br /&gt;
 ExecReload=/var/qmail/bin/qmail reload&amp;lt;br&amp;gt;&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1628</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1628"/>
		<updated>2025-08-22T18:59:30Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &#039;&#039;&#039;Systemd conversion&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 # unlink /usr/bin/qmailctl&lt;br /&gt;
 # mv /etc/init.d/qmail /etc/init.d/vusaged /var/qmail/bin&lt;br /&gt;
 # ln -s /var/qmail/bin/qmail /usr/bin/qmailctl&lt;br /&gt;
 # cat &amp;gt; /etc/systemd/system/qmail.service &amp;lt;&amp;lt;EOF&lt;br /&gt;
 # Automatically generated by systemd-sysv-generator&amp;lt;br&amp;gt;&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Documentation=man:systemd-sysv-generator(8)&lt;br /&gt;
 SourcePath=/var/qmail/bin/qmail&lt;br /&gt;
 Description=SYSV: Qmailtoaster MTA&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=graphical.target&amp;lt;br&amp;gt;&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 Restart=no&lt;br /&gt;
 TimeoutSec=5min&lt;br /&gt;
 IgnoreSIGPIPE=no&lt;br /&gt;
 KillMode=process&lt;br /&gt;
 GuessMainPID=no&lt;br /&gt;
 RemainAfterExit=yes&lt;br /&gt;
 ExecStart=/var/qmail/bin/qmail start&lt;br /&gt;
 ExecStop=/var/qmail/bin/qmail stop&lt;br /&gt;
 ExecReload=/var/qmail/bin/qmail reload&amp;lt;br&amp;gt;&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1627</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1627"/>
		<updated>2025-08-22T18:59:04Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &#039;&#039;&#039;Systemd conversion&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 # unlink /usr/bin/qmailctl&lt;br /&gt;
 # mv /etc/init.d/qmail /etc/init.d/vusaged /var/qmail/bin&lt;br /&gt;
 # ln -s /var/qmail/bin/qmail /usr/bin/qmailctl&lt;br /&gt;
 cat &amp;gt; /etc/systemd/system/qmail.service &amp;lt;&amp;lt;EOF&lt;br /&gt;
 # Automatically generated by systemd-sysv-generator&amp;lt;br&amp;gt;&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Documentation=man:systemd-sysv-generator(8)&lt;br /&gt;
 SourcePath=/var/qmail/bin/qmail&lt;br /&gt;
 Description=SYSV: Qmailtoaster MTA&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=graphical.target&amp;lt;br&amp;gt;&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 Restart=no&lt;br /&gt;
 TimeoutSec=5min&lt;br /&gt;
 IgnoreSIGPIPE=no&lt;br /&gt;
 KillMode=process&lt;br /&gt;
 GuessMainPID=no&lt;br /&gt;
 RemainAfterExit=yes&lt;br /&gt;
 ExecStart=/var/qmail/bin/qmail start&lt;br /&gt;
 ExecStop=/var/qmail/bin/qmail stop&lt;br /&gt;
 ExecReload=/var/qmail/bin/qmail reload&amp;lt;br&amp;gt;&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1626</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1626"/>
		<updated>2025-08-22T18:58:26Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &#039;&#039;&#039;Systemd conversion&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 # unlink /usr/bin/qmailctl&lt;br /&gt;
 # mv /etc/init.d/qmail /etc/init.d/vusaged /var/qmail/bin&lt;br /&gt;
 # ln -s /usr/qmail/bin/qmail /usr/bin/qmailctl&lt;br /&gt;
 cat &amp;gt; /etc/systemd/system/qmail.service &amp;lt;&amp;lt;EOF&lt;br /&gt;
 # Automatically generated by systemd-sysv-generator&amp;lt;br&amp;gt;&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Documentation=man:systemd-sysv-generator(8)&lt;br /&gt;
 SourcePath=/var/qmail/bin/qmail&lt;br /&gt;
 Description=SYSV: Qmailtoaster MTA&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=graphical.target&amp;lt;br&amp;gt;&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 Restart=no&lt;br /&gt;
 TimeoutSec=5min&lt;br /&gt;
 IgnoreSIGPIPE=no&lt;br /&gt;
 KillMode=process&lt;br /&gt;
 GuessMainPID=no&lt;br /&gt;
 RemainAfterExit=yes&lt;br /&gt;
 ExecStart=/var/qmail/bin/qmail start&lt;br /&gt;
 ExecStop=/var/qmail/bin/qmail stop&lt;br /&gt;
 ExecReload=/var/qmail/bin/qmail reload&amp;lt;br&amp;gt;&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1625</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1625"/>
		<updated>2025-08-22T18:58:08Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &#039;&#039;&#039;Systemd conversion&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 # unlink /usr/bin/qmailctl&lt;br /&gt;
 # mv /etc/init.d/qmail /etc/init.d/vusaged /var/qmail/bin&lt;br /&gt;
 # ln -s /usr/qmail/bin/qmail /usr/bin/qmailctl&lt;br /&gt;
 cat &amp;gt; /etc/systemd/system/qmail.service &amp;lt;&amp;lt;EOF&amp;lt;br&amp;gt;&lt;br /&gt;
 # Automatically generated by systemd-sysv-generator&amp;lt;br&amp;gt;&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Documentation=man:systemd-sysv-generator(8)&lt;br /&gt;
 SourcePath=/var/qmail/bin/qmail&lt;br /&gt;
 Description=SYSV: Qmailtoaster MTA&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=graphical.target&amp;lt;br&amp;gt;&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 Restart=no&lt;br /&gt;
 TimeoutSec=5min&lt;br /&gt;
 IgnoreSIGPIPE=no&lt;br /&gt;
 KillMode=process&lt;br /&gt;
 GuessMainPID=no&lt;br /&gt;
 RemainAfterExit=yes&lt;br /&gt;
 ExecStart=/var/qmail/bin/qmail start&lt;br /&gt;
 ExecStop=/var/qmail/bin/qmail stop&lt;br /&gt;
 ExecReload=/var/qmail/bin/qmail reload&amp;lt;br&amp;gt;&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1624</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1624"/>
		<updated>2025-08-22T18:57:28Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &#039;&#039;&#039;Systemd conversion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 # unlink /usr/bin/qmailctl&lt;br /&gt;
 # mv /etc/init.d/qmail /etc/init.d/vusaged /var/qmail/bin&lt;br /&gt;
 # ln -s /usr/qmail/bin/qmail /usr/bin/qmailctl&lt;br /&gt;
 cat &amp;gt; /etc/systemd/system/qmail.service &amp;lt;&amp;lt;EOF&amp;lt;br&amp;gt;&lt;br /&gt;
 # Automatically generated by systemd-sysv-generator&amp;lt;br&amp;gt;&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Documentation=man:systemd-sysv-generator(8)&lt;br /&gt;
 SourcePath=/var/qmail/bin/qmail&lt;br /&gt;
 Description=SYSV: Qmailtoaster MTA&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=graphical.target&amp;lt;br&amp;gt;&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 Restart=no&lt;br /&gt;
 TimeoutSec=5min&lt;br /&gt;
 IgnoreSIGPIPE=no&lt;br /&gt;
 KillMode=process&lt;br /&gt;
 GuessMainPID=no&lt;br /&gt;
 RemainAfterExit=yes&lt;br /&gt;
 ExecStart=/var/qmail/bin/qmail start&lt;br /&gt;
 ExecStop=/var/qmail/bin/qmail stop&lt;br /&gt;
 ExecReload=/var/qmail/bin/qmail reload&amp;lt;br&amp;gt;&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1623</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Systemd&amp;diff=1623"/>
		<updated>2025-08-22T18:56:38Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: Created page with &amp;quot; &amp;#039;&amp;#039;&amp;#039;Systemd conversion&amp;#039;&amp;#039;&amp;#039;   # unlink /usr/bin/qmailctl  # mv /etc/init.d/qmail /etc/init.d/vusaged /var/qmail/bin  # ln -s /usr/qmail/bin/qmail /usr/bin/qmailctl  cat &amp;gt; /etc/systemd/system/qmail.service &amp;lt;&amp;lt;EOF   # Automatically generated by systemd-sysv-generator   [Unit]  Documentation=man:systemd-sysv-generator(8)  SourcePath=/var/qmail/bin/qmail  Description=SYSV: Qmailtoaster MTA  Before=multi-user.target  Before=multi-user.target  Before=multi-user.target  Before=gra...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &#039;&#039;&#039;Systemd conversion&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 # unlink /usr/bin/qmailctl&lt;br /&gt;
 # mv /etc/init.d/qmail /etc/init.d/vusaged /var/qmail/bin&lt;br /&gt;
 # ln -s /usr/qmail/bin/qmail /usr/bin/qmailctl&lt;br /&gt;
 cat &amp;gt; /etc/systemd/system/qmail.service &amp;lt;&amp;lt;EOF&lt;br /&gt;
&lt;br /&gt;
 # Automatically generated by systemd-sysv-generator&lt;br /&gt;
&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Documentation=man:systemd-sysv-generator(8)&lt;br /&gt;
 SourcePath=/var/qmail/bin/qmail&lt;br /&gt;
 Description=SYSV: Qmailtoaster MTA&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=multi-user.target&lt;br /&gt;
 Before=graphical.target&lt;br /&gt;
&lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=forking&lt;br /&gt;
 Restart=no&lt;br /&gt;
 TimeoutSec=5min&lt;br /&gt;
 IgnoreSIGPIPE=no&lt;br /&gt;
 KillMode=process&lt;br /&gt;
 GuessMainPID=no&lt;br /&gt;
 RemainAfterExit=yes&lt;br /&gt;
 ExecStart=/var/qmail/bin/qmail start&lt;br /&gt;
 ExecStop=/var/qmail/bin/qmail stop&lt;br /&gt;
 ExecReload=/var/qmail/bin/qmail reload&lt;br /&gt;
&lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=default.target&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Rocky,_Alma,_Springdale_10_QT_Install&amp;diff=1622</id>
		<title>Rocky, Alma, Springdale 10 QT Install</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Rocky,_Alma,_Springdale_10_QT_Install&amp;diff=1622"/>
		<updated>2025-08-22T18:46:49Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: /* SYSV to systemd */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page#RHEL_10_&amp;amp;_Derivatives|Back]]&amp;lt;br&amp;gt;&lt;br /&gt;
=Enterprise Linux 10 Minimal Install= &lt;br /&gt;
==QMT Install (&#039;Many-Domain&#039;)== &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; curl -o /usr/local/bin/qt_install https://raw.githubusercontent.com/qmtoaster/scripts/master/qt_install_el10.sh&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; chmod 755 /usr/local/bin/qt_install&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; qt_install&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; ...installing... &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; toaststat&amp;lt;br&amp;gt;&lt;br /&gt;
 Status of toaster services&lt;br /&gt;
 send: up (pid 1323) 1517 seconds&lt;br /&gt;
 smtp: up (pid 1324) 1517 seconds&lt;br /&gt;
 submission: up (pid 1325) 1517 seconds&lt;br /&gt;
 send/log: up (pid 1316) 1517 seconds&lt;br /&gt;
 smtp/log: up (pid 1311) 1517 seconds&lt;br /&gt;
 submission/log: up (pid 1314) 1517 seconds&amp;lt;br&amp;gt;&lt;br /&gt;
 systemd service:               clamd@scan:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:         clamav-freshclam:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:             spamassassin:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  dovecot:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  mariadb:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    httpd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    named:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                     ntpd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                     sshd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  network:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    crond:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    acpid:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                      atd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                   autofs:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                   smartd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:               irqbalance:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;] (Multiple processors only)&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; [https://raw.githubusercontent.com/qmtoaster/scripts/master/conntest conntest]&lt;br /&gt;
 Enter a valid remote email account to which QMT will send mail: &amp;lt;email address&amp;gt;&lt;br /&gt;
 IMAPS: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
 Submission: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
 SMTPS: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [http://wiki.qmailtoaster.org/index.php?title=Simscan Scanners]&lt;br /&gt;
 [http://wiki.qmailtoaster.org/index.php?title=Alias_Domains Many Domain Install (Alias Domain)]&lt;br /&gt;
 Qmail-1.03-3.3.12 (OpenSSL3)&lt;br /&gt;
 [https://github.com/qmtoaster/patches/blob/master/EL9/README.md Patches] applied&lt;br /&gt;
&lt;br /&gt;
== systemd ==&lt;br /&gt;
&lt;br /&gt;
== Install certificate ==&lt;br /&gt;
  [[Certificate]] *Note: The certificate must be 2048 bits or more&lt;br /&gt;
== Test certificate ==&lt;br /&gt;
  # curl --verbose smtps://mail.domain.tld&lt;br /&gt;
  # curl --verbose imaps://mail.domain.tld&lt;br /&gt;
or&lt;br /&gt;
  # openssl s_client mail.domain.tld:465&lt;br /&gt;
  # openssl s_client mail.domain.tld:993 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Server certificate:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  subject: CN=mail.domain.tld&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  start date: Jul 30 09:16:16 2024 GMT&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  expire date: Oct 28 09:16:15 2024 GMT&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  subjectAltName: host &amp;quot;mail.domain.tld&amp;quot; matched cert&#039;s &amp;quot;mail.domain.tld&amp;quot;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  issuer: C=US; O=Let&#039;s Encrypt; CN=R11&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  SSL certificate verify ok.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the following error is encountered when testing the new certificate the certificate is most likely less than 2048 bits&lt;br /&gt;
&lt;br /&gt;
 806B7387577F0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:ssl/record/ssl3_record.c:354&lt;br /&gt;
&lt;br /&gt;
Usually Let&#039;s Encrypt certificates are at least 2048 bits, but encountering 256 bits keys is possible. Correct by specifying the number of bits:&lt;br /&gt;
&lt;br /&gt;
 certbot renew --cert-name -d domain.tld -d mail.domain.tld --apache &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;--rsa-key-size 2048 --key-type rsa&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Rocky,_Alma,_Springdale_10_QT_Install&amp;diff=1621</id>
		<title>Rocky, Alma, Springdale 10 QT Install</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Rocky,_Alma,_Springdale_10_QT_Install&amp;diff=1621"/>
		<updated>2025-08-22T18:46:31Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: /* SYSV to systemd */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page#RHEL_10_&amp;amp;_Derivatives|Back]]&amp;lt;br&amp;gt;&lt;br /&gt;
=Enterprise Linux 10 Minimal Install= &lt;br /&gt;
==QMT Install (&#039;Many-Domain&#039;)== &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; curl -o /usr/local/bin/qt_install https://raw.githubusercontent.com/qmtoaster/scripts/master/qt_install_el10.sh&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; chmod 755 /usr/local/bin/qt_install&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; qt_install&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; ...installing... &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; toaststat&amp;lt;br&amp;gt;&lt;br /&gt;
 Status of toaster services&lt;br /&gt;
 send: up (pid 1323) 1517 seconds&lt;br /&gt;
 smtp: up (pid 1324) 1517 seconds&lt;br /&gt;
 submission: up (pid 1325) 1517 seconds&lt;br /&gt;
 send/log: up (pid 1316) 1517 seconds&lt;br /&gt;
 smtp/log: up (pid 1311) 1517 seconds&lt;br /&gt;
 submission/log: up (pid 1314) 1517 seconds&amp;lt;br&amp;gt;&lt;br /&gt;
 systemd service:               clamd@scan:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:         clamav-freshclam:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:             spamassassin:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  dovecot:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  mariadb:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    httpd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    named:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                     ntpd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                     sshd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  network:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    crond:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    acpid:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                      atd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                   autofs:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                   smartd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:               irqbalance:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;] (Multiple processors only)&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; [https://raw.githubusercontent.com/qmtoaster/scripts/master/conntest conntest]&lt;br /&gt;
 Enter a valid remote email account to which QMT will send mail: &amp;lt;email address&amp;gt;&lt;br /&gt;
 IMAPS: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
 Submission: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
 SMTPS: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [http://wiki.qmailtoaster.org/index.php?title=Simscan Scanners]&lt;br /&gt;
 [http://wiki.qmailtoaster.org/index.php?title=Alias_Domains Many Domain Install (Alias Domain)]&lt;br /&gt;
 Qmail-1.03-3.3.12 (OpenSSL3)&lt;br /&gt;
 [https://github.com/qmtoaster/patches/blob/master/EL9/README.md Patches] applied&lt;br /&gt;
&lt;br /&gt;
== SYSV to systemd ==&lt;br /&gt;
&lt;br /&gt;
== Install certificate ==&lt;br /&gt;
  [[Certificate]] *Note: The certificate must be 2048 bits or more&lt;br /&gt;
== Test certificate ==&lt;br /&gt;
  # curl --verbose smtps://mail.domain.tld&lt;br /&gt;
  # curl --verbose imaps://mail.domain.tld&lt;br /&gt;
or&lt;br /&gt;
  # openssl s_client mail.domain.tld:465&lt;br /&gt;
  # openssl s_client mail.domain.tld:993 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Server certificate:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  subject: CN=mail.domain.tld&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  start date: Jul 30 09:16:16 2024 GMT&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  expire date: Oct 28 09:16:15 2024 GMT&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  subjectAltName: host &amp;quot;mail.domain.tld&amp;quot; matched cert&#039;s &amp;quot;mail.domain.tld&amp;quot;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  issuer: C=US; O=Let&#039;s Encrypt; CN=R11&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  SSL certificate verify ok.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the following error is encountered when testing the new certificate the certificate is most likely less than 2048 bits&lt;br /&gt;
&lt;br /&gt;
 806B7387577F0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:ssl/record/ssl3_record.c:354&lt;br /&gt;
&lt;br /&gt;
Usually Let&#039;s Encrypt certificates are at least 2048 bits, but encountering 256 bits keys is possible. Correct by specifying the number of bits:&lt;br /&gt;
&lt;br /&gt;
 certbot renew --cert-name -d domain.tld -d mail.domain.tld --apache &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;--rsa-key-size 2048 --key-type rsa&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Configuration&amp;diff=1620</id>
		<title>Configuration</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Configuration&amp;diff=1620"/>
		<updated>2025-08-22T18:45:40Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page#Configuration|Back]]&lt;br /&gt;
== [[ Initial Configuration ]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Domains]] ==&lt;br /&gt;
Follow this link for information about configuring domains.&lt;br /&gt;
&lt;br /&gt;
== [[Users]] ==&lt;br /&gt;
Follow this link for information about configuring users.&lt;br /&gt;
&lt;br /&gt;
List of [[Mobile Device]] which succesfully connect to QmailToaster with SMTP-Auth and Submission Port&lt;br /&gt;
&lt;br /&gt;
List of [[Wapmail]] for mobile users with GPRS and Wap Browser Handphone&lt;br /&gt;
&lt;br /&gt;
== Control Files ==&lt;br /&gt;
The majority of the configuration files are located in the &#039;&#039;&#039;/var/qmail/control &#039;&#039;&#039; directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
man &#039;&#039;&#039;qmail-control&#039;&#039;&#039; excerpt:&lt;br /&gt;
&lt;br /&gt;
You can change the behavior of the &#039;&#039;&#039;qmail&#039;&#039;&#039; system by modifying &#039;&#039;&#039;qmail&#039;&#039;&#039;&#039;s &amp;lt;u&amp;gt;control&amp;lt;/u&amp;gt; &amp;lt;u&amp;gt;files&amp;lt;/u&amp;gt; in &#039;&#039;&#039;/var/qmail/control&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;qmail&#039;&#039;&#039; [but not Qmail-Toaster] can survive with just one control file, [[me]], containing the fully-qualified name of the current host. This file is used as the default for other hostname-related control files.&lt;br /&gt;
&lt;br /&gt;
Comments are allowed in [[badhelo]], [[badmailfrom]], [[badmailfromnorelay]], [[badmailto]], [[badmailtonorelay]], [[locals]], [[percenthack]], [[qmqpservers]], [[rcpthosts]], [[smtproutes]], and [[virtualdomains]]. Trailing spaces and tabs are allowed in any [qmail] control file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [[Control Files List]] ===&lt;br /&gt;
=== [[Control Files by Name]] ===&lt;br /&gt;
Table of Control Files organized alphabetically with default values, included with Qmail-Toaster, and used by information.&lt;br /&gt;
=== [[Control Files by Function]] ===&lt;br /&gt;
Links to Control File descriptions organized by module.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Filtering ==&lt;br /&gt;
=== Pre Receipt ===&lt;br /&gt;
==== [[chkuser]] ====&lt;br /&gt;
&lt;br /&gt;
==== [[RBLs]] ====&lt;br /&gt;
&lt;br /&gt;
==== [[SPF]] ====&lt;br /&gt;
&lt;br /&gt;
==== [[Spamdyke]] ====&lt;br /&gt;
&lt;br /&gt;
=== Post Receipt ===&lt;br /&gt;
==== [[Simscan]] ====&lt;br /&gt;
&lt;br /&gt;
==== [[Clamav]] ====&lt;br /&gt;
&lt;br /&gt;
==== [[Spamassassin]] ====&lt;br /&gt;
&lt;br /&gt;
==== [[Amavis]] ====&lt;br /&gt;
&lt;br /&gt;
==== [[Spam Throttle]] ====&lt;br /&gt;
&lt;br /&gt;
==== [[SURBL]] ====&lt;br /&gt;
&lt;br /&gt;
==== [[Dspam|Dspam]] ====&lt;br /&gt;
&lt;br /&gt;
===== [[Dspam w/PostgreSQL]] =====&lt;br /&gt;
&lt;br /&gt;
==== [[Domainkeys]] &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;***Obsolete***&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
== Networking ==&lt;br /&gt;
=== [[DNS Server]] ===&lt;br /&gt;
&lt;br /&gt;
===[[SRS]]===&lt;br /&gt;
&lt;br /&gt;
=== [[tcp.smtp]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[tcpserver]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[DKIM]] ===&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
=== [[Certificate]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[eMPF]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Fail2ban]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[SMTPS]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Submission]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Securing SquirrelMail|SquirrelMail]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[ Secure /admin-toaster/ ]] ===&lt;br /&gt;
&lt;br /&gt;
== [[Dovecot]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Vpopmail]] ==&lt;br /&gt;
&lt;br /&gt;
== [[PHP]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Qmail queue]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Qmail Dovecot Authentication]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Qmail Active Directory Authentication]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Dovecot Active Directory Authentication]] ==&lt;br /&gt;
&lt;br /&gt;
== [[IMAP/SMTP Authentication tests]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Redirection]] ==&lt;br /&gt;
Follow this link for information about how to redirect email to different addresses.&lt;br /&gt;
&lt;br /&gt;
== [[systemd]] ==&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Rocky,_Alma,_Springdale_10_QT_Install&amp;diff=1619</id>
		<title>Rocky, Alma, Springdale 10 QT Install</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Rocky,_Alma,_Springdale_10_QT_Install&amp;diff=1619"/>
		<updated>2025-08-22T18:43:25Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: /* SYSV to systemd */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page#RHEL_10_&amp;amp;_Derivatives|Back]]&amp;lt;br&amp;gt;&lt;br /&gt;
=Enterprise Linux 10 Minimal Install= &lt;br /&gt;
==QMT Install (&#039;Many-Domain&#039;)== &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; curl -o /usr/local/bin/qt_install https://raw.githubusercontent.com/qmtoaster/scripts/master/qt_install_el10.sh&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; chmod 755 /usr/local/bin/qt_install&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; qt_install&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; ...installing... &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; toaststat&amp;lt;br&amp;gt;&lt;br /&gt;
 Status of toaster services&lt;br /&gt;
 send: up (pid 1323) 1517 seconds&lt;br /&gt;
 smtp: up (pid 1324) 1517 seconds&lt;br /&gt;
 submission: up (pid 1325) 1517 seconds&lt;br /&gt;
 send/log: up (pid 1316) 1517 seconds&lt;br /&gt;
 smtp/log: up (pid 1311) 1517 seconds&lt;br /&gt;
 submission/log: up (pid 1314) 1517 seconds&amp;lt;br&amp;gt;&lt;br /&gt;
 systemd service:               clamd@scan:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:         clamav-freshclam:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:             spamassassin:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  dovecot:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  mariadb:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    httpd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    named:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                     ntpd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                     sshd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  network:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    crond:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    acpid:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                      atd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                   autofs:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                   smartd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:               irqbalance:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;] (Multiple processors only)&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; [https://raw.githubusercontent.com/qmtoaster/scripts/master/conntest conntest]&lt;br /&gt;
 Enter a valid remote email account to which QMT will send mail: &amp;lt;email address&amp;gt;&lt;br /&gt;
 IMAPS: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
 Submission: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
 SMTPS: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [http://wiki.qmailtoaster.org/index.php?title=Simscan Scanners]&lt;br /&gt;
 [http://wiki.qmailtoaster.org/index.php?title=Alias_Domains Many Domain Install (Alias Domain)]&lt;br /&gt;
 Qmail-1.03-3.3.12 (OpenSSL3)&lt;br /&gt;
 [https://github.com/qmtoaster/patches/blob/master/EL9/README.md Patches] applied&lt;br /&gt;
&lt;br /&gt;
== SYSV to systemd ==&lt;br /&gt;
 [http://wiki.qmailtoaster.org/index.php?title=systemd]&lt;br /&gt;
&lt;br /&gt;
== Install certificate ==&lt;br /&gt;
  [[Certificate]] *Note: The certificate must be 2048 bits or more&lt;br /&gt;
== Test certificate ==&lt;br /&gt;
  # curl --verbose smtps://mail.domain.tld&lt;br /&gt;
  # curl --verbose imaps://mail.domain.tld&lt;br /&gt;
or&lt;br /&gt;
  # openssl s_client mail.domain.tld:465&lt;br /&gt;
  # openssl s_client mail.domain.tld:993 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Server certificate:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  subject: CN=mail.domain.tld&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  start date: Jul 30 09:16:16 2024 GMT&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  expire date: Oct 28 09:16:15 2024 GMT&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  subjectAltName: host &amp;quot;mail.domain.tld&amp;quot; matched cert&#039;s &amp;quot;mail.domain.tld&amp;quot;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  issuer: C=US; O=Let&#039;s Encrypt; CN=R11&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  SSL certificate verify ok.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the following error is encountered when testing the new certificate the certificate is most likely less than 2048 bits&lt;br /&gt;
&lt;br /&gt;
 806B7387577F0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:ssl/record/ssl3_record.c:354&lt;br /&gt;
&lt;br /&gt;
Usually Let&#039;s Encrypt certificates are at least 2048 bits, but encountering 256 bits keys is possible. Correct by specifying the number of bits:&lt;br /&gt;
&lt;br /&gt;
 certbot renew --cert-name -d domain.tld -d mail.domain.tld --apache &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;--rsa-key-size 2048 --key-type rsa&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Rocky,_Alma,_Springdale_10_QT_Install&amp;diff=1618</id>
		<title>Rocky, Alma, Springdale 10 QT Install</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Rocky,_Alma,_Springdale_10_QT_Install&amp;diff=1618"/>
		<updated>2025-08-22T18:42:50Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page#RHEL_10_&amp;amp;_Derivatives|Back]]&amp;lt;br&amp;gt;&lt;br /&gt;
=Enterprise Linux 10 Minimal Install= &lt;br /&gt;
==QMT Install (&#039;Many-Domain&#039;)== &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; curl -o /usr/local/bin/qt_install https://raw.githubusercontent.com/qmtoaster/scripts/master/qt_install_el10.sh&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; chmod 755 /usr/local/bin/qt_install&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; qt_install&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; ...installing... &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; toaststat&amp;lt;br&amp;gt;&lt;br /&gt;
 Status of toaster services&lt;br /&gt;
 send: up (pid 1323) 1517 seconds&lt;br /&gt;
 smtp: up (pid 1324) 1517 seconds&lt;br /&gt;
 submission: up (pid 1325) 1517 seconds&lt;br /&gt;
 send/log: up (pid 1316) 1517 seconds&lt;br /&gt;
 smtp/log: up (pid 1311) 1517 seconds&lt;br /&gt;
 submission/log: up (pid 1314) 1517 seconds&amp;lt;br&amp;gt;&lt;br /&gt;
 systemd service:               clamd@scan:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:         clamav-freshclam:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:             spamassassin:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  dovecot:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  mariadb:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    httpd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    named:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                     ntpd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                     sshd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  network:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    crond:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    acpid:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                      atd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                   autofs:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                   smartd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:               irqbalance:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;] (Multiple processors only)&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; [https://raw.githubusercontent.com/qmtoaster/scripts/master/conntest conntest]&lt;br /&gt;
 Enter a valid remote email account to which QMT will send mail: &amp;lt;email address&amp;gt;&lt;br /&gt;
 IMAPS: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
 Submission: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
 SMTPS: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [http://wiki.qmailtoaster.org/index.php?title=Simscan Scanners]&lt;br /&gt;
 [http://wiki.qmailtoaster.org/index.php?title=Alias_Domains Many Domain Install (Alias Domain)]&lt;br /&gt;
 Qmail-1.03-3.3.12 (OpenSSL3)&lt;br /&gt;
 [https://github.com/qmtoaster/patches/blob/master/EL9/README.md Patches] applied&lt;br /&gt;
&lt;br /&gt;
== SYSV to systemd ==&lt;br /&gt;
 [http://wiki.qmailtoaster.org/index.php?title=SYSV-systemd]&lt;br /&gt;
&lt;br /&gt;
== Install certificate ==&lt;br /&gt;
  [[Certificate]] *Note: The certificate must be 2048 bits or more&lt;br /&gt;
== Test certificate ==&lt;br /&gt;
  # curl --verbose smtps://mail.domain.tld&lt;br /&gt;
  # curl --verbose imaps://mail.domain.tld&lt;br /&gt;
or&lt;br /&gt;
  # openssl s_client mail.domain.tld:465&lt;br /&gt;
  # openssl s_client mail.domain.tld:993 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Server certificate:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  subject: CN=mail.domain.tld&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  start date: Jul 30 09:16:16 2024 GMT&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  expire date: Oct 28 09:16:15 2024 GMT&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  subjectAltName: host &amp;quot;mail.domain.tld&amp;quot; matched cert&#039;s &amp;quot;mail.domain.tld&amp;quot;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  issuer: C=US; O=Let&#039;s Encrypt; CN=R11&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  SSL certificate verify ok.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the following error is encountered when testing the new certificate the certificate is most likely less than 2048 bits&lt;br /&gt;
&lt;br /&gt;
 806B7387577F0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:ssl/record/ssl3_record.c:354&lt;br /&gt;
&lt;br /&gt;
Usually Let&#039;s Encrypt certificates are at least 2048 bits, but encountering 256 bits keys is possible. Correct by specifying the number of bits:&lt;br /&gt;
&lt;br /&gt;
 certbot renew --cert-name -d domain.tld -d mail.domain.tld --apache &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;--rsa-key-size 2048 --key-type rsa&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Rocky,_Alma,_Springdale_10_QT_Install&amp;diff=1617</id>
		<title>Rocky, Alma, Springdale 10 QT Install</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Rocky,_Alma,_Springdale_10_QT_Install&amp;diff=1617"/>
		<updated>2025-08-22T18:40:16Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page#RHEL_10_&amp;amp;_Derivatives|Back]]&amp;lt;br&amp;gt;&lt;br /&gt;
=Enterprise Linux 10 Minimal Install= &lt;br /&gt;
==QMT Install (&#039;Many-Domain&#039;)== &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; curl -o /usr/local/bin/qt_install https://raw.githubusercontent.com/qmtoaster/scripts/master/qt_install_el10.sh&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; chmod 755 /usr/local/bin/qt_install&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; qt_install&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; ...installing... &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; toaststat&amp;lt;br&amp;gt;&lt;br /&gt;
 Status of toaster services&lt;br /&gt;
 send: up (pid 1323) 1517 seconds&lt;br /&gt;
 smtp: up (pid 1324) 1517 seconds&lt;br /&gt;
 submission: up (pid 1325) 1517 seconds&lt;br /&gt;
 send/log: up (pid 1316) 1517 seconds&lt;br /&gt;
 smtp/log: up (pid 1311) 1517 seconds&lt;br /&gt;
 submission/log: up (pid 1314) 1517 seconds&amp;lt;br&amp;gt;&lt;br /&gt;
 systemd service:               clamd@scan:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:         clamav-freshclam:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:             spamassassin:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  dovecot:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  mariadb:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    httpd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    named:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                     ntpd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                     sshd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  network:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    crond:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    acpid:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                      atd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                   autofs:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                   smartd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:               irqbalance:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;] (Multiple processors only)&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; [https://raw.githubusercontent.com/qmtoaster/scripts/master/conntest conntest]&lt;br /&gt;
 Enter a valid remote email account to which QMT will send mail: &amp;lt;email address&amp;gt;&lt;br /&gt;
 IMAPS: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
 Submission: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
 SMTPS: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [http://wiki.qmailtoaster.org/index.php?title=Simscan Scanners]&lt;br /&gt;
 [http://wiki.qmailtoaster.org/index.php?title=Alias_Domains Many Domain Install (Alias Domain)]&lt;br /&gt;
 Qmail-1.03-3.3.12 (OpenSSL3)&lt;br /&gt;
 [https://github.com/qmtoaster/patches/blob/master/EL9/README.md Patches] applied&lt;br /&gt;
&lt;br /&gt;
== SYSV to systemd ==&lt;br /&gt;
&lt;br /&gt;
== Install certificate ==&lt;br /&gt;
  [[Certificate]] *Note: The certificate must be 2048 bits or more&lt;br /&gt;
== Test certificate ==&lt;br /&gt;
  # curl --verbose smtps://mail.domain.tld&lt;br /&gt;
  # curl --verbose imaps://mail.domain.tld&lt;br /&gt;
or&lt;br /&gt;
  # openssl s_client mail.domain.tld:465&lt;br /&gt;
  # openssl s_client mail.domain.tld:993 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Server certificate:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  subject: CN=mail.domain.tld&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  start date: Jul 30 09:16:16 2024 GMT&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  expire date: Oct 28 09:16:15 2024 GMT&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  subjectAltName: host &amp;quot;mail.domain.tld&amp;quot; matched cert&#039;s &amp;quot;mail.domain.tld&amp;quot;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  issuer: C=US; O=Let&#039;s Encrypt; CN=R11&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  SSL certificate verify ok.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the following error is encountered when testing the new certificate the certificate is most likely less than 2048 bits&lt;br /&gt;
&lt;br /&gt;
 806B7387577F0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:ssl/record/ssl3_record.c:354&lt;br /&gt;
&lt;br /&gt;
Usually Let&#039;s Encrypt certificates are at least 2048 bits, but encountering 256 bits keys is possible. Correct by specifying the number of bits:&lt;br /&gt;
&lt;br /&gt;
 certbot renew --cert-name -d domain.tld -d mail.domain.tld --apache &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;--rsa-key-size 2048 --key-type rsa&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Simscan&amp;diff=1616</id>
		<title>Simscan</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Simscan&amp;diff=1616"/>
		<updated>2025-08-21T21:13:23Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Configuration#Simscan|Back]]&amp;lt;br&amp;gt;&lt;br /&gt;
== Scanning ==&lt;br /&gt;
&lt;br /&gt;
 In /etc/tcprules.d/tcp.smtp set environment variable QMAILQUEUE to simscan binary &lt;br /&gt;
   ...,QMAILQUEUE=&amp;quot;/var/qmail/bin/simscan&amp;quot;,...&lt;br /&gt;
 Rebuild tcp.smtp&lt;br /&gt;
 # qmailctl cdb&lt;br /&gt;
&lt;br /&gt;
== Control ==&lt;br /&gt;
&lt;br /&gt;
 Simscan&#039;s control file is /var/qmail/control/simcontrol&lt;br /&gt;
 It&#039;s format looks like thus:&amp;lt;br&amp;gt;&lt;br /&gt;
 :clam=yes,spam=yes,spam_hits=9.5,spam_passthru=yes,attach=.vbs:.lnk:.scr:.wsh:.hta:.pif&lt;br /&gt;
 This tells simscan for all domains to scan with ClamAV, Spamassassin, filter attachments, queueing all mail after filtering&amp;lt;br&amp;gt;&lt;br /&gt;
 Consider the following format:&amp;lt;br&amp;gt;&lt;br /&gt;
 domain.tld:dspam=yes,rspam=yes,clam=yes,spam=yes,spam_passthru=yes,...&lt;br /&gt;
 This tells simscan for domain.tld to scan with Dspam, Rspam, ClamAV, Spamassassin,...&amp;lt;br&amp;gt;&lt;br /&gt;
 Upon edit of simcontrol the file must be put into proper format for use, run&lt;br /&gt;
 # qmailctl cdb&amp;lt;br&amp;gt;&lt;br /&gt;
 Note: simscan automatically runs dspam client (/usr/bin/dspamc). So the dspam server must be running. &lt;br /&gt;
       In order to run dspam (/usr/bin/dspam) instead set the environment variable DSPAM_BIN in either  &lt;br /&gt;
       /etc/tcprules.d/tcp.smtp or in the smtp run script.&lt;br /&gt;
&lt;br /&gt;
== Ramdisk ==&lt;br /&gt;
&lt;br /&gt;
 Use htop or other program to determine available memory for ramdisk (size=)&lt;br /&gt;
  # clamgid=$(test -z &amp;quot;$(cat /etc/passwd | grep ^clamav)&amp;quot; &amp;amp;&amp;amp; id -g clamscan 2&amp;gt;/dev/null || id -g clamav 2&amp;gt;/dev/null) &amp;amp;&amp;amp; echo $clamgid&lt;br /&gt;
  # qmailctl stop&lt;br /&gt;
  # mount -t tmpfs -o size=1024m,nodev,noexec,noatime,uid=$clamgid,gid=0,mode=0750 myramdisk /var/qmail/simscan&lt;br /&gt;
  # ls -ld /var/qmail/simscan&lt;br /&gt;
     drwxr-x--- 2 clamscan root 6 Aug 17 13:28 /var/qmail/simscan&lt;br /&gt;
  # qmailctl start&lt;br /&gt;
  # df -h /var/qmail/simscan&lt;br /&gt;
     Filesystem      Size  Used Avail Use% Mounted on&lt;br /&gt;
     myramdisk       1.0G     0  1.0G   0% /var/qmail/simscan&lt;br /&gt;
  # cp /etc/fstab /etc/fstab.bak&lt;br /&gt;
  # echo &amp;quot;myramdisk /var/qmail/simscan tmpfs size=1024m,nodev,noexec,noatime,uid=$clamgid,gid=0,mode=0750 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
  Make sure /etc/fstab file is okay before a reboot&lt;br /&gt;
  # cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
== Filtering ==&lt;br /&gt;
&lt;br /&gt;
 Install Dspam, Rspam, SA userprefs&amp;lt;br&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;# Fedora EL8&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/yum.repos.d/fedoramirrors &amp;lt;&amp;lt; EOF&lt;br /&gt;
 https://d2lzkl7pfhq30w.cloudfront.net/pub/archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 http://mirror.math.princeton.edu/pub/fedora-archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 http://pubmirror1.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 https://pubmirror2.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 http://mirrors.kernel.org/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 https://dl.fedoraproject.org/pub/archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 EOF&amp;lt;br&amp;gt;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/yum.repos.d/fedora28.repo &amp;lt;&amp;lt; EOF&lt;br /&gt;
 [fedora]&lt;br /&gt;
 name=Fedora 28&lt;br /&gt;
 mirrorlist=file:///etc/yum.repos.d/fedoramirrors&lt;br /&gt;
 enabled=0&lt;br /&gt;
 gpgcheck=0&lt;br /&gt;
 priority=100&lt;br /&gt;
 EOF&amp;lt;br&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;# Fedora EL9&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/yum.repos.d/fedoramirrors &amp;lt;&amp;lt; EOF&lt;br /&gt;
 https://d2lzkl7pfhq30w.cloudfront.net/pub/archive/fedora/linux/releases/34/Everything/x86_64/os/&lt;br /&gt;
 http://mirror.math.princeton.edu/pub/fedora-archive/fedora/linux/releases/34/Everything/x86_64/os/&lt;br /&gt;
 http://pubmirror1.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/34/Everything/x86_64/os/&lt;br /&gt;
 https://pubmirror2.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/34/Everything/x86_64/os/&lt;br /&gt;
 http://mirrors.kernel.org/fedora-buffet/archive/fedora/linux/releases/34/Everything/x86_64/os/&lt;br /&gt;
 https://dl.fedoraproject.org/pub/archive/fedora/linux/releases/34/Everything/x86_64/os/&lt;br /&gt;
 EOF&amp;lt;br&amp;gt;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/yum.repos.d/fedora34.repo &amp;lt;&amp;lt; EOF&lt;br /&gt;
 [fedora]&lt;br /&gt;
 name=Fedora 34&lt;br /&gt;
 mirrorlist=file:///etc/yum.repos.d/fedoramirrors&lt;br /&gt;
 enabled=0&lt;br /&gt;
 gpgcheck=0&lt;br /&gt;
 priority=100&lt;br /&gt;
 EOF&amp;lt;br&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;# Fedora EL10&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/yum.repos.d/fedora41.repo &amp;lt;&amp;lt; EOF&lt;br /&gt;
 [fedora41]&lt;br /&gt;
 name=Fedora 41 RPM - x86_64&lt;br /&gt;
 baseurl=https://dl.fedoraproject.org/pub/fedora/linux/releases/41/Everything/\$basearch/os/&lt;br /&gt;
 enabled=0&lt;br /&gt;
 gpgcheck=0&lt;br /&gt;
 priority=100&lt;br /&gt;
 [fedora41-source]&lt;br /&gt;
 name=Fedora 41 SRPM - x86_64 Source&lt;br /&gt;
 baseurl=https://dl.fedoraproject.org/pub/fedora/linux/releases/41/Everything/source/tree/&lt;br /&gt;
 enabled=0&lt;br /&gt;
 gpgcheck=0&lt;br /&gt;
 priority=100&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 # Begin DSpam DB Install, Skip if already installed&lt;br /&gt;
 wget https://raw.githubusercontent.com/qmtoaster/dspam/master/dspamdb.sql&lt;br /&gt;
 if [ &amp;quot;$?&amp;quot; != &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
   echo &amp;quot;Error downloading dspam db: ($?), exiting...&amp;quot;&lt;br /&gt;
   exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 MYSQLPW=&lt;br /&gt;
 # Get DB password for administrator and check validity.&lt;br /&gt;
 if [ -z &amp;quot;$MYSQLPW&amp;quot; ]; then&lt;br /&gt;
    read -s -p &amp;quot;Enter MySQL/MariaDB admin password to create dspam database: &amp;quot; MYSQLPW&lt;br /&gt;
 fi&lt;br /&gt;
 credfile=~/sql.cnf&lt;br /&gt;
 echo -e &amp;quot;[client]\nuser=root\npassword=&#039;$MYSQLPW&#039;\nhost=localhost&amp;quot; &amp;gt; $credfile&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile status &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 if [ &amp;quot;$?&amp;quot; != &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
   echo &amp;quot;Bad MySQL/MariaDB administrator password or MySQL/MariaDB is not running. Exiting...&amp;quot;&lt;br /&gt;
   exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 echo &amp;quot;&amp;quot;&lt;br /&gt;
 echo &amp;quot;Dropping Dspam database if it exists already...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;use dspam&amp;quot; &amp;amp;&amp;gt; /dev/null&lt;br /&gt;
 [ &amp;quot;$?&amp;quot; = &amp;quot;0&amp;quot; ] &amp;amp;&amp;amp; mysqldump --defaults-extra-file=$credfile dspam &amp;gt; dspam.sql \&lt;br /&gt;
               &amp;amp;&amp;amp; mysql --defaults-extra-file=$credfile -e &amp;quot;drop database dspam&amp;quot; \&lt;br /&gt;
               &amp;amp;&amp;amp; echo &amp;quot;dspam db saved to dspam.sql and dropped...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # Create dspam with correct permissions&lt;br /&gt;
 echo &amp;quot;Creating Dspam database...&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile create dspam&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 echo &amp;quot;Adding dspam users and privileges...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;CREATE USER dspam@localhost IDENTIFIED BY &#039;p4ssw3rd&#039;&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;GRANT ALL PRIVILEGES ON dspam.* TO dspam@localhost&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 echo &amp;quot;Done with dspam database...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile dspam &amp;lt; dspamdb.sql&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 # End DSpam DB install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # Rspam Installation:&lt;br /&gt;
 wget https://rspamd.com/rpm-stable/centos-$rel/rspamd.repo -O /etc/yum.repos.d/rspamd.repo&lt;br /&gt;
&lt;br /&gt;
 dnf $FEDORAREPO --enablerepo=qmt-devel install dspam dspam-libs dspam-client dspam-mysql dspam-web rspamd&lt;br /&gt;
 systemctl enable --now dspam&lt;br /&gt;
 systemctl status dspam&lt;br /&gt;
 systemctl enable --now rspamd&lt;br /&gt;
 systemctl status rspamd&lt;br /&gt;
&lt;br /&gt;
 # Update Simscan&lt;br /&gt;
 dnf --enablerepo=qmt-devel update simscan&lt;br /&gt;
&lt;br /&gt;
 # Up qmail limits&lt;br /&gt;
 sed -i &#039;s/softlimit -m.*\\/softlimit -m 256000000 \\/&#039; /var/qmail/supervise/smtp/run&lt;br /&gt;
 qmailctl stop&lt;br /&gt;
 qmailctl start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # SA user prefs&lt;br /&gt;
&lt;br /&gt;
 # Create SA DB and load table into MySQL&lt;br /&gt;
 cat &amp;gt;&amp;gt; ./sadb.sql &amp;lt;&amp;lt; EOF&lt;br /&gt;
 CREATE TABLE userpref (&lt;br /&gt;
  username varchar(100) NOT NULL default &#039;&#039;,&lt;br /&gt;
  preference varchar(50) NOT NULL default &#039;&#039;,&lt;br /&gt;
  value varchar(255) NOT NULL default &#039;&#039;,&lt;br /&gt;
  prefid int(11) NOT NULL auto_increment,&lt;br /&gt;
  ts timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),&lt;br /&gt;
  PRIMARY KEY  (prefid),&lt;br /&gt;
  KEY username (username)&lt;br /&gt;
 ) ENGINE=InnoDB;&lt;br /&gt;
 EOF&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile create spamassassin&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;CREATE USER spamassassin@localhost IDENTIFIED BY &#039;p4ssw3rd&#039;&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;GRANT ALL PRIVILEGES ON spamassassin.* TO spamassassin@localhost&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 mysql --defaults-extra-file=$credfile spamassassin &amp;lt; sadb.sql&lt;br /&gt;
&lt;br /&gt;
 # Read SA SQL DB&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/mail/spamassassin/sql.cf &amp;lt;&amp;lt; EOF&lt;br /&gt;
 user_scores_dsn                  DBI:mysql:spamassassin:localhost:3306&lt;br /&gt;
 user_scores_sql_password         p4ssw3rd&lt;br /&gt;
 user_scores_sql_username         spamassassin&lt;br /&gt;
 user_scores_sql_custom_query     SELECT preference, value FROM _TABLE_ WHERE username = _USERNAME_ OR username = &#039;$GLOBAL&#039; OR username = &lt;br /&gt;
 CONCAT(&#039;%&#039;,_DOMAIN_) ORDER BY username ASC&lt;br /&gt;
 EOF&lt;br /&gt;
 echo &amp;quot;include sql.cf&amp;quot; &amp;gt;&amp;gt; /etc/mail/spamassassin/local.cf&lt;br /&gt;
&lt;br /&gt;
 # Add Per User Settings in SA SQL DB (Yours may differ)&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;\$GLOBAL&#039;,&#039;required_hits&#039;,&#039;5.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;user@dom.com&#039;,&#039;required_hits&#039;,&#039;7.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;globalspam&#039;,&#039;required_hits&#039;,&#039;5.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;select * from userpref&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
&lt;br /&gt;
 # Tell SA Daemon To Use SQL DB&lt;br /&gt;
 sed -i &#039;s/SPAMDOPTIONS=&amp;quot;.*&amp;quot;/SPAMDOPTIONS=&amp;quot;--create-prefs -m10 -q -x -u clamscan&amp;quot;/&#039; /etc/sysconfig/spamassassin&lt;br /&gt;
&lt;br /&gt;
 # Bayesian Filtering&lt;br /&gt;
 mkdir /etc/mail/spamassassin/.spamassassin&lt;br /&gt;
 chown -R clamscan:clamscan /etc/mail/spamassassin/.spamassassin&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/mail/spamassassin/bayes.cf &amp;lt;&amp;lt; EOF&lt;br /&gt;
 use_bayes 1&lt;br /&gt;
 use_bayes_rules 1&lt;br /&gt;
 bayes_auto_learn 1&lt;br /&gt;
 bayes_path /etc/mail/spamassassin/.spamassassin/bayes&lt;br /&gt;
 bayes_auto_learn_threshold_spam 6.0&lt;br /&gt;
 bayes_file_mode 0775&lt;br /&gt;
 EOF&lt;br /&gt;
 echo &amp;quot;include bayes.cf&amp;quot; &amp;gt;&amp;gt; /etc/mail/spamassassin/local.cf&lt;br /&gt;
 systemctl restart spamassassin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # Tell simscan, append to simcontrol, reload cdb&lt;br /&gt;
 dspam=yes,rspam=yes,regex&lt;br /&gt;
 optional: dspamuser=globalspam (Otherwise the first envelope &#039;rcpt to&#039; address is used)&lt;br /&gt;
 optional: spamuser=globalspam (Add to userprefs table)&lt;br /&gt;
 optional: remove spam_hits=* (Otherwise userprefs will not be used)&lt;br /&gt;
 qmailctl cdb&lt;br /&gt;
&lt;br /&gt;
 # This is my configuration:&lt;br /&gt;
 :clam=yes,spam=yes,rspam=yes,dspam=yes,spam_passthru=yes,attach=.exe:.pif:.scr&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Simscan&amp;diff=1615</id>
		<title>Simscan</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Simscan&amp;diff=1615"/>
		<updated>2025-08-21T20:37:04Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Configuration#Simscan|Back]]&amp;lt;br&amp;gt;&lt;br /&gt;
== Scanning ==&lt;br /&gt;
&lt;br /&gt;
 In /etc/tcprules.d/tcp.smtp set environment variable QMAILQUEUE to simscan binary &lt;br /&gt;
   ...,QMAILQUEUE=&amp;quot;/var/qmail/bin/simscan&amp;quot;,...&lt;br /&gt;
 Rebuild tcp.smtp&lt;br /&gt;
 # qmailctl cdb&lt;br /&gt;
&lt;br /&gt;
== Control ==&lt;br /&gt;
&lt;br /&gt;
 Simscan&#039;s control file is /var/qmail/control/simcontrol&lt;br /&gt;
 It&#039;s format looks like thus:&amp;lt;br&amp;gt;&lt;br /&gt;
 :clam=yes,spam=yes,spam_hits=9.5,spam_passthru=yes,attach=.vbs:.lnk:.scr:.wsh:.hta:.pif&lt;br /&gt;
 This tells simscan for all domains to scan with ClamAV, Spamassassin, filter attachments, queueing all mail after filtering&amp;lt;br&amp;gt;&lt;br /&gt;
 Consider the following format:&amp;lt;br&amp;gt;&lt;br /&gt;
 domain.tld:dspam=yes,rspam=yes,clam=yes,spam=yes,spam_passthru=yes,...&lt;br /&gt;
 This tells simscan for domain.tld to scan with Dspam, Rspam, ClamAV, Spamassassin,...&amp;lt;br&amp;gt;&lt;br /&gt;
 Upon edit of simcontrol the file must be put into proper format for use, run&lt;br /&gt;
 # qmailctl cdb&amp;lt;br&amp;gt;&lt;br /&gt;
 Note: simscan automatically runs dspam client (/usr/bin/dspamc). So the dspam server must be running. &lt;br /&gt;
       In order to run dspam (/usr/bin/dspam) instead set the environment variable DSPAM_BIN in either  &lt;br /&gt;
       /etc/tcprules.d/tcp.smtp or in the smtp run script.&lt;br /&gt;
&lt;br /&gt;
== Ramdisk ==&lt;br /&gt;
&lt;br /&gt;
 Use htop or other program to determine available memory for ramdisk (size=)&lt;br /&gt;
  # clamgid=$(test -z &amp;quot;$(cat /etc/passwd | grep ^clamav)&amp;quot; &amp;amp;&amp;amp; id -g clamscan 2&amp;gt;/dev/null || id -g clamav 2&amp;gt;/dev/null) &amp;amp;&amp;amp; echo $clamgid&lt;br /&gt;
  # qmailctl stop&lt;br /&gt;
  # mount -t tmpfs -o size=1024m,nodev,noexec,noatime,uid=$clamgid,gid=0,mode=0750 myramdisk /var/qmail/simscan&lt;br /&gt;
  # ls -ld /var/qmail/simscan&lt;br /&gt;
     drwxr-x--- 2 clamscan root 6 Aug 17 13:28 /var/qmail/simscan&lt;br /&gt;
  # qmailctl start&lt;br /&gt;
  # df -h /var/qmail/simscan&lt;br /&gt;
     Filesystem      Size  Used Avail Use% Mounted on&lt;br /&gt;
     myramdisk       1.0G     0  1.0G   0% /var/qmail/simscan&lt;br /&gt;
  # cp /etc/fstab /etc/fstab.bak&lt;br /&gt;
  # echo &amp;quot;myramdisk /var/qmail/simscan tmpfs size=1024m,nodev,noexec,noatime,uid=$clamgid,gid=0,mode=0750 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
  Make sure /etc/fstab file is okay before a reboot&lt;br /&gt;
  # cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
== Filtering ==&lt;br /&gt;
&lt;br /&gt;
 Install Dspam, Rspam, SA userprefs&amp;lt;br&amp;gt;&lt;br /&gt;
 # Fedora EL8&amp;lt;br&amp;gt;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/yum.repos.d/fedoramirrors &amp;lt;&amp;lt; EOF&lt;br /&gt;
 https://d2lzkl7pfhq30w.cloudfront.net/pub/archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 http://mirror.math.princeton.edu/pub/fedora-archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 http://pubmirror1.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 https://pubmirror2.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 http://mirrors.kernel.org/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 https://dl.fedoraproject.org/pub/archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 EOF&amp;lt;br&amp;gt;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/yum.repos.d/fedora28.repo &amp;lt;&amp;lt; EOF&lt;br /&gt;
 [fedora]&lt;br /&gt;
 name=Fedora 28&lt;br /&gt;
 mirrorlist=file:///etc/yum.repos.d/fedoramirrors&lt;br /&gt;
 enabled=0&lt;br /&gt;
 gpgcheck=0&lt;br /&gt;
 priority=100&lt;br /&gt;
 EOF&amp;lt;br&amp;gt;&lt;br /&gt;
 # Fedora EL9&amp;lt;br&amp;gt;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/yum.repos.d/fedoramirrors &amp;lt;&amp;lt; EOF&lt;br /&gt;
 https://d2lzkl7pfhq30w.cloudfront.net/pub/archive/fedora/linux/releases/34/Everything/x86_64/os/&lt;br /&gt;
 http://mirror.math.princeton.edu/pub/fedora-archive/fedora/linux/releases/34/Everything/x86_64/os/&lt;br /&gt;
 http://pubmirror1.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/34/Everything/x86_64/os/&lt;br /&gt;
 https://pubmirror2.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/34/Everything/x86_64/os/&lt;br /&gt;
 http://mirrors.kernel.org/fedora-buffet/archive/fedora/linux/releases/34/Everything/x86_64/os/&lt;br /&gt;
 https://dl.fedoraproject.org/pub/archive/fedora/linux/releases/34/Everything/x86_64/os/&lt;br /&gt;
 EOF&amp;lt;br&amp;gt;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/yum.repos.d/fedora34.repo &amp;lt;&amp;lt; EOF&lt;br /&gt;
 [fedora]&lt;br /&gt;
 name=Fedora 34&lt;br /&gt;
 mirrorlist=file:///etc/yum.repos.d/fedoramirrors&lt;br /&gt;
 enabled=0&lt;br /&gt;
 gpgcheck=0&lt;br /&gt;
 priority=100&lt;br /&gt;
 EOF&amp;lt;br&amp;gt;&lt;br /&gt;
 # Fedora EL10&amp;lt;br&amp;gt;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/yum.repos.d/fedora41.repo &amp;lt;&amp;lt; EOF&lt;br /&gt;
 [fedora41]&lt;br /&gt;
 name=Fedora 41 RPM - x86_64&lt;br /&gt;
 baseurl=https://dl.fedoraproject.org/pub/fedora/linux/releases/41/Everything/\$basearch/os/&lt;br /&gt;
 enabled=0&lt;br /&gt;
 gpgcheck=0&lt;br /&gt;
 priority=100&lt;br /&gt;
 [fedora41-source]&lt;br /&gt;
 name=Fedora 41 SRPM - x86_64 Source&lt;br /&gt;
 baseurl=https://dl.fedoraproject.org/pub/fedora/linux/releases/41/Everything/source/tree/&lt;br /&gt;
 enabled=0&lt;br /&gt;
 gpgcheck=0&lt;br /&gt;
 priority=100&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 # Begin DSpam DB Install, Skip if already installed&lt;br /&gt;
 wget https://raw.githubusercontent.com/qmtoaster/dspam/master/dspamdb.sql&lt;br /&gt;
 if [ &amp;quot;$?&amp;quot; != &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
   echo &amp;quot;Error downloading dspam db: ($?), exiting...&amp;quot;&lt;br /&gt;
   exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 MYSQLPW=&lt;br /&gt;
 # Get DB password for administrator and check validity.&lt;br /&gt;
 if [ -z &amp;quot;$MYSQLPW&amp;quot; ]; then&lt;br /&gt;
    read -s -p &amp;quot;Enter MySQL/MariaDB admin password to create dspam database: &amp;quot; MYSQLPW&lt;br /&gt;
 fi&lt;br /&gt;
 credfile=~/sql.cnf&lt;br /&gt;
 echo -e &amp;quot;[client]\nuser=root\npassword=&#039;$MYSQLPW&#039;\nhost=localhost&amp;quot; &amp;gt; $credfile&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile status &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 if [ &amp;quot;$?&amp;quot; != &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
   echo &amp;quot;Bad MySQL/MariaDB administrator password or MySQL/MariaDB is not running. Exiting...&amp;quot;&lt;br /&gt;
   exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 echo &amp;quot;&amp;quot;&lt;br /&gt;
 echo &amp;quot;Dropping Dspam database if it exists already...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;use dspam&amp;quot; &amp;amp;&amp;gt; /dev/null&lt;br /&gt;
 [ &amp;quot;$?&amp;quot; = &amp;quot;0&amp;quot; ] &amp;amp;&amp;amp; mysqldump --defaults-extra-file=$credfile dspam &amp;gt; dspam.sql \&lt;br /&gt;
               &amp;amp;&amp;amp; mysql --defaults-extra-file=$credfile -e &amp;quot;drop database dspam&amp;quot; \&lt;br /&gt;
               &amp;amp;&amp;amp; echo &amp;quot;dspam db saved to dspam.sql and dropped...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # Create dspam with correct permissions&lt;br /&gt;
 echo &amp;quot;Creating Dspam database...&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile create dspam&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 echo &amp;quot;Adding dspam users and privileges...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;CREATE USER dspam@localhost IDENTIFIED BY &#039;p4ssw3rd&#039;&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;GRANT ALL PRIVILEGES ON dspam.* TO dspam@localhost&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 echo &amp;quot;Done with dspam database...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile dspam &amp;lt; dspamdb.sql&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 # End DSpam DB install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # Rspam Installation:&lt;br /&gt;
 wget https://rspamd.com/rpm-stable/centos-$rel/rspamd.repo -O /etc/yum.repos.d/rspamd.repo&lt;br /&gt;
&lt;br /&gt;
 dnf $FEDORAREPO --enablerepo=qmt-devel install dspam dspam-libs dspam-client dspam-mysql dspam-web rspamd&lt;br /&gt;
 systemctl enable --now dspam&lt;br /&gt;
 systemctl status dspam&lt;br /&gt;
 systemctl enable --now rspamd&lt;br /&gt;
 systemctl status rspamd&lt;br /&gt;
&lt;br /&gt;
 # Update Simscan&lt;br /&gt;
 dnf --enablerepo=qmt-devel update simscan&lt;br /&gt;
&lt;br /&gt;
 # Up qmail limits&lt;br /&gt;
 sed -i &#039;s/softlimit -m.*\\/softlimit -m 256000000 \\/&#039; /var/qmail/supervise/smtp/run&lt;br /&gt;
 qmailctl stop&lt;br /&gt;
 qmailctl start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # SA user prefs&lt;br /&gt;
&lt;br /&gt;
 # Create SA DB and load table into MySQL&lt;br /&gt;
 cat &amp;gt;&amp;gt; ./sadb.sql &amp;lt;&amp;lt; EOF&lt;br /&gt;
 CREATE TABLE userpref (&lt;br /&gt;
  username varchar(100) NOT NULL default &#039;&#039;,&lt;br /&gt;
  preference varchar(50) NOT NULL default &#039;&#039;,&lt;br /&gt;
  value varchar(255) NOT NULL default &#039;&#039;,&lt;br /&gt;
  prefid int(11) NOT NULL auto_increment,&lt;br /&gt;
  ts timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),&lt;br /&gt;
  PRIMARY KEY  (prefid),&lt;br /&gt;
  KEY username (username)&lt;br /&gt;
 ) ENGINE=InnoDB;&lt;br /&gt;
 EOF&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile create spamassassin&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;CREATE USER spamassassin@localhost IDENTIFIED BY &#039;p4ssw3rd&#039;&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;GRANT ALL PRIVILEGES ON spamassassin.* TO spamassassin@localhost&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 mysql --defaults-extra-file=$credfile spamassassin &amp;lt; sadb.sql&lt;br /&gt;
&lt;br /&gt;
 # Read SA SQL DB&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/mail/spamassassin/sql.cf &amp;lt;&amp;lt; EOF&lt;br /&gt;
 user_scores_dsn                  DBI:mysql:spamassassin:localhost:3306&lt;br /&gt;
 user_scores_sql_password         p4ssw3rd&lt;br /&gt;
 user_scores_sql_username         spamassassin&lt;br /&gt;
 user_scores_sql_custom_query     SELECT preference, value FROM _TABLE_ WHERE username = _USERNAME_ OR username = &#039;$GLOBAL&#039; OR username = &lt;br /&gt;
 CONCAT(&#039;%&#039;,_DOMAIN_) ORDER BY username ASC&lt;br /&gt;
 EOF&lt;br /&gt;
 echo &amp;quot;include sql.cf&amp;quot; &amp;gt;&amp;gt; /etc/mail/spamassassin/local.cf&lt;br /&gt;
&lt;br /&gt;
 # Add Per User Settings in SA SQL DB (Yours may differ)&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;\$GLOBAL&#039;,&#039;required_hits&#039;,&#039;5.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;user@dom.com&#039;,&#039;required_hits&#039;,&#039;7.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;globalspam&#039;,&#039;required_hits&#039;,&#039;5.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;select * from userpref&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
&lt;br /&gt;
 # Tell SA Daemon To Use SQL DB&lt;br /&gt;
 sed -i &#039;s/SPAMDOPTIONS=&amp;quot;.*&amp;quot;/SPAMDOPTIONS=&amp;quot;--create-prefs -m10 -q -x -u clamscan&amp;quot;/&#039; /etc/sysconfig/spamassassin&lt;br /&gt;
&lt;br /&gt;
 # Bayesian Filtering&lt;br /&gt;
 mkdir /etc/mail/spamassassin/.spamassassin&lt;br /&gt;
 chown -R clamscan:clamscan /etc/mail/spamassassin/.spamassassin&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/mail/spamassassin/bayes.cf &amp;lt;&amp;lt; EOF&lt;br /&gt;
 use_bayes 1&lt;br /&gt;
 use_bayes_rules 1&lt;br /&gt;
 bayes_auto_learn 1&lt;br /&gt;
 bayes_path /etc/mail/spamassassin/.spamassassin/bayes&lt;br /&gt;
 bayes_auto_learn_threshold_spam 6.0&lt;br /&gt;
 bayes_file_mode 0775&lt;br /&gt;
 EOF&lt;br /&gt;
 echo &amp;quot;include bayes.cf&amp;quot; &amp;gt;&amp;gt; /etc/mail/spamassassin/local.cf&lt;br /&gt;
 systemctl restart spamassassin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # Tell simscan, append to simcontrol, reload cdb&lt;br /&gt;
 dspam=yes,rspam=yes,regex&lt;br /&gt;
 optional: dspamuser=globalspam (Otherwise the first envelope &#039;rcpt to&#039; address is used)&lt;br /&gt;
 optional: spamuser=globalspam (Add to userprefs table)&lt;br /&gt;
 optional: remove spam_hits=* (Otherwise userprefs will not be used)&lt;br /&gt;
 qmailctl cdb&lt;br /&gt;
&lt;br /&gt;
 # This is my configuration:&lt;br /&gt;
 :clam=yes,spam=yes,rspam=yes,dspam=yes,spam_passthru=yes,attach=.exe:.pif:.scr&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Simscan&amp;diff=1614</id>
		<title>Simscan</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Simscan&amp;diff=1614"/>
		<updated>2025-08-21T20:32:04Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Configuration#Simscan|Back]]&amp;lt;br&amp;gt;&lt;br /&gt;
== Scanning ==&lt;br /&gt;
&lt;br /&gt;
 In /etc/tcprules.d/tcp.smtp set environment variable QMAILQUEUE to simscan binary &lt;br /&gt;
   ...,QMAILQUEUE=&amp;quot;/var/qmail/bin/simscan&amp;quot;,...&lt;br /&gt;
 Rebuild tcp.smtp&lt;br /&gt;
 # qmailctl cdb&lt;br /&gt;
&lt;br /&gt;
== Control ==&lt;br /&gt;
&lt;br /&gt;
 Simscan&#039;s control file is /var/qmail/control/simcontrol&lt;br /&gt;
 It&#039;s format looks like thus:&amp;lt;br&amp;gt;&lt;br /&gt;
 :clam=yes,spam=yes,spam_hits=9.5,spam_passthru=yes,attach=.vbs:.lnk:.scr:.wsh:.hta:.pif&lt;br /&gt;
 This tells simscan for all domains to scan with ClamAV, Spamassassin, filter attachments, queueing all mail after filtering&amp;lt;br&amp;gt;&lt;br /&gt;
 Consider the following format:&amp;lt;br&amp;gt;&lt;br /&gt;
 domain.tld:dspam=yes,rspam=yes,clam=yes,spam=yes,spam_passthru=yes,...&lt;br /&gt;
 This tells simscan for domain.tld to scan with Dspam, Rspam, ClamAV, Spamassassin,...&amp;lt;br&amp;gt;&lt;br /&gt;
 Upon edit of simcontrol the file must be put into proper format for use, run&lt;br /&gt;
 # qmailctl cdb&amp;lt;br&amp;gt;&lt;br /&gt;
 Note: simscan automatically runs dspam client (/usr/bin/dspamc). So the dspam server must be running. &lt;br /&gt;
       In order to run dspam (/usr/bin/dspam) instead set the environment variable DSPAM_BIN in either  &lt;br /&gt;
       /etc/tcprules.d/tcp.smtp or in the smtp run script.&lt;br /&gt;
&lt;br /&gt;
== Ramdisk ==&lt;br /&gt;
&lt;br /&gt;
 Use htop or other program to determine available memory for ramdisk (size=)&lt;br /&gt;
  # clamgid=$(test -z &amp;quot;$(cat /etc/passwd | grep ^clamav)&amp;quot; &amp;amp;&amp;amp; id -g clamscan 2&amp;gt;/dev/null || id -g clamav 2&amp;gt;/dev/null) &amp;amp;&amp;amp; echo $clamgid&lt;br /&gt;
  # qmailctl stop&lt;br /&gt;
  # mount -t tmpfs -o size=1024m,nodev,noexec,noatime,uid=$clamgid,gid=0,mode=0750 myramdisk /var/qmail/simscan&lt;br /&gt;
  # ls -ld /var/qmail/simscan&lt;br /&gt;
     drwxr-x--- 2 clamscan root 6 Aug 17 13:28 /var/qmail/simscan&lt;br /&gt;
  # qmailctl start&lt;br /&gt;
  # df -h /var/qmail/simscan&lt;br /&gt;
     Filesystem      Size  Used Avail Use% Mounted on&lt;br /&gt;
     myramdisk       1.0G     0  1.0G   0% /var/qmail/simscan&lt;br /&gt;
  # cp /etc/fstab /etc/fstab.bak&lt;br /&gt;
  # echo &amp;quot;myramdisk /var/qmail/simscan tmpfs size=1024m,nodev,noexec,noatime,uid=$clamgid,gid=0,mode=0750 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
  Make sure /etc/fstab file is okay before a reboot&lt;br /&gt;
  # cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
== Filtering ==&lt;br /&gt;
&lt;br /&gt;
 Install Dspam, Rspam, SA userprefs&amp;lt;br&amp;gt;&lt;br /&gt;
 # Fedora EL8&amp;lt;br&amp;gt;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/yum.repos.d/fedoramirrors &amp;lt;&amp;lt; EOF&lt;br /&gt;
 https://d2lzkl7pfhq30w.cloudfront.net/pub/archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 http://mirror.math.princeton.edu/pub/fedora-archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 http://pubmirror1.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 https://pubmirror2.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 http://mirrors.kernel.org/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 https://dl.fedoraproject.org/pub/archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 EOF&amp;lt;br&amp;gt;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/yum.repos.d/fedora28.repo &amp;lt;&amp;lt; EOF&lt;br /&gt;
 [fedora]&lt;br /&gt;
 name=Fedora 28&lt;br /&gt;
 mirrorlist=file:///etc/yum.repos.d/fedoramirrors&lt;br /&gt;
 enabled=0&lt;br /&gt;
 gpgcheck=0&lt;br /&gt;
 priority=100&lt;br /&gt;
 EOF&amp;lt;br&amp;gt;&lt;br /&gt;
 # Fedora EL9&amp;lt;br&amp;gt;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/yum.repos.d/fedoramirrors &amp;lt;&amp;lt; EOF&lt;br /&gt;
 https://d2lzkl7pfhq30w.cloudfront.net/pub/archive/fedora/linux/releases/34/Everything/x86_64/os/&lt;br /&gt;
 http://mirror.math.princeton.edu/pub/fedora-archive/fedora/linux/releases/34/Everything/x86_64/os/&lt;br /&gt;
 http://pubmirror1.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/34/Everything/x86_64/os/&lt;br /&gt;
 https://pubmirror2.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/34/Everything/x86_64/os/&lt;br /&gt;
 http://mirrors.kernel.org/fedora-buffet/archive/fedora/linux/releases/34/Everything/x86_64/os/&lt;br /&gt;
 https://dl.fedoraproject.org/pub/archive/fedora/linux/releases/34/Everything/x86_64/os/&lt;br /&gt;
 EOF&amp;lt;br&amp;gt;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/yum.repos.d/fedora34.repo &amp;lt;&amp;lt; EOF&lt;br /&gt;
 [fedora]&lt;br /&gt;
 name=Fedora 34&lt;br /&gt;
 mirrorlist=file:///etc/yum.repos.d/fedoramirrors&lt;br /&gt;
 enabled=0&lt;br /&gt;
 gpgcheck=0&lt;br /&gt;
 priority=100&lt;br /&gt;
 EOF&amp;lt;br&amp;gt;&lt;br /&gt;
 # Fedora EL10&amp;lt;br&amp;gt;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/yum.repos.d/fedora41.repo &amp;lt;&amp;lt; EOF&lt;br /&gt;
 [fedora41]&lt;br /&gt;
 name=Fedora 41 RPM - x86_64&lt;br /&gt;
 baseurl=https://dl.fedoraproject.org/pub/fedora/linux/releases/41/Everything/$basearch/os/&lt;br /&gt;
 enabled=0&lt;br /&gt;
 gpgcheck=0&lt;br /&gt;
 priority=100&lt;br /&gt;
 [fedora41-source]&lt;br /&gt;
 name=Fedora 41 SRPM - x86_64 Source&lt;br /&gt;
 baseurl=https://dl.fedoraproject.org/pub/fedora/linux/releases/41/Everything/source/tree/&lt;br /&gt;
 enabled=0&lt;br /&gt;
 gpgcheck=0&lt;br /&gt;
 priority=100&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 # Begin DSpam DB Install, Skip if already installed&lt;br /&gt;
 wget https://raw.githubusercontent.com/qmtoaster/dspam/master/dspamdb.sql&lt;br /&gt;
 if [ &amp;quot;$?&amp;quot; != &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
   echo &amp;quot;Error downloading dspam db: ($?), exiting...&amp;quot;&lt;br /&gt;
   exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 MYSQLPW=&lt;br /&gt;
 # Get DB password for administrator and check validity.&lt;br /&gt;
 if [ -z &amp;quot;$MYSQLPW&amp;quot; ]; then&lt;br /&gt;
    read -s -p &amp;quot;Enter MySQL/MariaDB admin password to create dspam database: &amp;quot; MYSQLPW&lt;br /&gt;
 fi&lt;br /&gt;
 credfile=~/sql.cnf&lt;br /&gt;
 echo -e &amp;quot;[client]\nuser=root\npassword=&#039;$MYSQLPW&#039;\nhost=localhost&amp;quot; &amp;gt; $credfile&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile status &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 if [ &amp;quot;$?&amp;quot; != &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
   echo &amp;quot;Bad MySQL/MariaDB administrator password or MySQL/MariaDB is not running. Exiting...&amp;quot;&lt;br /&gt;
   exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 echo &amp;quot;&amp;quot;&lt;br /&gt;
 echo &amp;quot;Dropping Dspam database if it exists already...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;use dspam&amp;quot; &amp;amp;&amp;gt; /dev/null&lt;br /&gt;
 [ &amp;quot;$?&amp;quot; = &amp;quot;0&amp;quot; ] &amp;amp;&amp;amp; mysqldump --defaults-extra-file=$credfile dspam &amp;gt; dspam.sql \&lt;br /&gt;
               &amp;amp;&amp;amp; mysql --defaults-extra-file=$credfile -e &amp;quot;drop database dspam&amp;quot; \&lt;br /&gt;
               &amp;amp;&amp;amp; echo &amp;quot;dspam db saved to dspam.sql and dropped...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # Create dspam with correct permissions&lt;br /&gt;
 echo &amp;quot;Creating Dspam database...&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile create dspam&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 echo &amp;quot;Adding dspam users and privileges...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;CREATE USER dspam@localhost IDENTIFIED BY &#039;p4ssw3rd&#039;&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;GRANT ALL PRIVILEGES ON dspam.* TO dspam@localhost&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 echo &amp;quot;Done with dspam database...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile dspam &amp;lt; dspamdb.sql&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 # End DSpam DB install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # Rspam Installation:&lt;br /&gt;
 wget https://rspamd.com/rpm-stable/centos-$rel/rspamd.repo -O /etc/yum.repos.d/rspamd.repo&lt;br /&gt;
&lt;br /&gt;
 dnf $FEDORAREPO --enablerepo=qmt-devel install dspam dspam-libs dspam-client dspam-mysql dspam-web rspamd&lt;br /&gt;
 systemctl enable --now dspam&lt;br /&gt;
 systemctl status dspam&lt;br /&gt;
 systemctl enable --now rspamd&lt;br /&gt;
 systemctl status rspamd&lt;br /&gt;
&lt;br /&gt;
 # Update Simscan&lt;br /&gt;
 dnf --enablerepo=qmt-devel update simscan&lt;br /&gt;
&lt;br /&gt;
 # Up qmail limits&lt;br /&gt;
 sed -i &#039;s/softlimit -m.*\\/softlimit -m 256000000 \\/&#039; /var/qmail/supervise/smtp/run&lt;br /&gt;
 qmailctl stop&lt;br /&gt;
 qmailctl start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # SA user prefs&lt;br /&gt;
&lt;br /&gt;
 # Create SA DB and load table into MySQL&lt;br /&gt;
 cat &amp;gt;&amp;gt; ./sadb.sql &amp;lt;&amp;lt; EOF&lt;br /&gt;
 CREATE TABLE userpref (&lt;br /&gt;
  username varchar(100) NOT NULL default &#039;&#039;,&lt;br /&gt;
  preference varchar(50) NOT NULL default &#039;&#039;,&lt;br /&gt;
  value varchar(255) NOT NULL default &#039;&#039;,&lt;br /&gt;
  prefid int(11) NOT NULL auto_increment,&lt;br /&gt;
  ts timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),&lt;br /&gt;
  PRIMARY KEY  (prefid),&lt;br /&gt;
  KEY username (username)&lt;br /&gt;
 ) ENGINE=InnoDB;&lt;br /&gt;
 EOF&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile create spamassassin&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;CREATE USER spamassassin@localhost IDENTIFIED BY &#039;p4ssw3rd&#039;&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;GRANT ALL PRIVILEGES ON spamassassin.* TO spamassassin@localhost&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 mysql --defaults-extra-file=$credfile spamassassin &amp;lt; sadb.sql&lt;br /&gt;
&lt;br /&gt;
 # Read SA SQL DB&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/mail/spamassassin/sql.cf &amp;lt;&amp;lt; EOF&lt;br /&gt;
 user_scores_dsn                  DBI:mysql:spamassassin:localhost:3306&lt;br /&gt;
 user_scores_sql_password         p4ssw3rd&lt;br /&gt;
 user_scores_sql_username         spamassassin&lt;br /&gt;
 user_scores_sql_custom_query     SELECT preference, value FROM _TABLE_ WHERE username = _USERNAME_ OR username = &#039;$GLOBAL&#039; OR username = &lt;br /&gt;
 CONCAT(&#039;%&#039;,_DOMAIN_) ORDER BY username ASC&lt;br /&gt;
 EOF&lt;br /&gt;
 echo &amp;quot;include sql.cf&amp;quot; &amp;gt;&amp;gt; /etc/mail/spamassassin/local.cf&lt;br /&gt;
&lt;br /&gt;
 # Add Per User Settings in SA SQL DB (Yours may differ)&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;\$GLOBAL&#039;,&#039;required_hits&#039;,&#039;5.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;user@dom.com&#039;,&#039;required_hits&#039;,&#039;7.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;globalspam&#039;,&#039;required_hits&#039;,&#039;5.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;select * from userpref&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
&lt;br /&gt;
 # Tell SA Daemon To Use SQL DB&lt;br /&gt;
 sed -i &#039;s/SPAMDOPTIONS=&amp;quot;.*&amp;quot;/SPAMDOPTIONS=&amp;quot;--create-prefs -m10 -q -x -u clamscan&amp;quot;/&#039; /etc/sysconfig/spamassassin&lt;br /&gt;
&lt;br /&gt;
 # Bayesian Filtering&lt;br /&gt;
 mkdir /etc/mail/spamassassin/.spamassassin&lt;br /&gt;
 chown -R clamscan:clamscan /etc/mail/spamassassin/.spamassassin&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/mail/spamassassin/bayes.cf &amp;lt;&amp;lt; EOF&lt;br /&gt;
 use_bayes 1&lt;br /&gt;
 use_bayes_rules 1&lt;br /&gt;
 bayes_auto_learn 1&lt;br /&gt;
 bayes_path /etc/mail/spamassassin/.spamassassin/bayes&lt;br /&gt;
 bayes_auto_learn_threshold_spam 6.0&lt;br /&gt;
 bayes_file_mode 0775&lt;br /&gt;
 EOF&lt;br /&gt;
 echo &amp;quot;include bayes.cf&amp;quot; &amp;gt;&amp;gt; /etc/mail/spamassassin/local.cf&lt;br /&gt;
 systemctl restart spamassassin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # Tell simscan, append to simcontrol, reload cdb&lt;br /&gt;
 dspam=yes,rspam=yes,regex&lt;br /&gt;
 optional: dspamuser=globalspam (Otherwise the first envelope &#039;rcpt to&#039; address is used)&lt;br /&gt;
 optional: spamuser=globalspam (Add to userprefs table)&lt;br /&gt;
 optional: remove spam_hits=* (Otherwise userprefs will not be used)&lt;br /&gt;
 qmailctl cdb&lt;br /&gt;
&lt;br /&gt;
 # This is my configuration:&lt;br /&gt;
 :clam=yes,spam=yes,rspam=yes,dspam=yes,spam_passthru=yes,attach=.exe:.pif:.scr&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Simscan&amp;diff=1613</id>
		<title>Simscan</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Simscan&amp;diff=1613"/>
		<updated>2025-08-21T20:28:23Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Configuration#Simscan|Back]]&amp;lt;br&amp;gt;&lt;br /&gt;
== Scanning ==&lt;br /&gt;
&lt;br /&gt;
 In /etc/tcprules.d/tcp.smtp set environment variable QMAILQUEUE to simscan binary &lt;br /&gt;
   ...,QMAILQUEUE=&amp;quot;/var/qmail/bin/simscan&amp;quot;,...&lt;br /&gt;
 Rebuild tcp.smtp&lt;br /&gt;
 # qmailctl cdb&lt;br /&gt;
&lt;br /&gt;
== Control ==&lt;br /&gt;
&lt;br /&gt;
 Simscan&#039;s control file is /var/qmail/control/simcontrol&lt;br /&gt;
 It&#039;s format looks like thus:&amp;lt;br&amp;gt;&lt;br /&gt;
 :clam=yes,spam=yes,spam_hits=9.5,spam_passthru=yes,attach=.vbs:.lnk:.scr:.wsh:.hta:.pif&lt;br /&gt;
 This tells simscan for all domains to scan with ClamAV, Spamassassin, filter attachments, queueing all mail after filtering&amp;lt;br&amp;gt;&lt;br /&gt;
 Consider the following format:&amp;lt;br&amp;gt;&lt;br /&gt;
 domain.tld:dspam=yes,rspam=yes,clam=yes,spam=yes,spam_passthru=yes,...&lt;br /&gt;
 This tells simscan for domain.tld to scan with Dspam, Rspam, ClamAV, Spamassassin,...&amp;lt;br&amp;gt;&lt;br /&gt;
 Upon edit of simcontrol the file must be put into proper format for use, run&lt;br /&gt;
 # qmailctl cdb&amp;lt;br&amp;gt;&lt;br /&gt;
 Note: simscan automatically runs dspam client (/usr/bin/dspamc). So the dspam server must be running. &lt;br /&gt;
       In order to run dspam (/usr/bin/dspam) instead set the environment variable DSPAM_BIN in either  &lt;br /&gt;
       /etc/tcprules.d/tcp.smtp or in the smtp run script.&lt;br /&gt;
&lt;br /&gt;
== Ramdisk ==&lt;br /&gt;
&lt;br /&gt;
 Use htop or other program to determine available memory for ramdisk (size=)&lt;br /&gt;
  # clamgid=$(test -z &amp;quot;$(cat /etc/passwd | grep ^clamav)&amp;quot; &amp;amp;&amp;amp; id -g clamscan 2&amp;gt;/dev/null || id -g clamav 2&amp;gt;/dev/null) &amp;amp;&amp;amp; echo $clamgid&lt;br /&gt;
  # qmailctl stop&lt;br /&gt;
  # mount -t tmpfs -o size=1024m,nodev,noexec,noatime,uid=$clamgid,gid=0,mode=0750 myramdisk /var/qmail/simscan&lt;br /&gt;
  # ls -ld /var/qmail/simscan&lt;br /&gt;
     drwxr-x--- 2 clamscan root 6 Aug 17 13:28 /var/qmail/simscan&lt;br /&gt;
  # qmailctl start&lt;br /&gt;
  # df -h /var/qmail/simscan&lt;br /&gt;
     Filesystem      Size  Used Avail Use% Mounted on&lt;br /&gt;
     myramdisk       1.0G     0  1.0G   0% /var/qmail/simscan&lt;br /&gt;
  # cp /etc/fstab /etc/fstab.bak&lt;br /&gt;
  # echo &amp;quot;myramdisk /var/qmail/simscan tmpfs size=1024m,nodev,noexec,noatime,uid=$clamgid,gid=0,mode=0750 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
  Make sure /etc/fstab file is okay before a reboot&lt;br /&gt;
  # cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
== Filtering ==&lt;br /&gt;
&lt;br /&gt;
 Install Dspam, Rspam, SA userprefs&amp;lt;br&amp;gt;&lt;br /&gt;
 # Fedora EL8&amp;lt;br&amp;gt;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/yum.repos.d/fedoramirrors &amp;lt;&amp;lt; EOF&lt;br /&gt;
 https://d2lzkl7pfhq30w.cloudfront.net/pub/archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 http://mirror.math.princeton.edu/pub/fedora-archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 http://pubmirror1.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 https://pubmirror2.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 http://mirrors.kernel.org/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 https://dl.fedoraproject.org/pub/archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 EOF&amp;lt;br&amp;gt;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/yum.repos.d/fedora28.repo &amp;lt;&amp;lt; EOF&lt;br /&gt;
 [fedora]&lt;br /&gt;
 name=Fedora 28&lt;br /&gt;
 mirrorlist=file:///etc/yum.repos.d/fedoramirrors&lt;br /&gt;
 enabled=0&lt;br /&gt;
 gpgcheck=0&lt;br /&gt;
 priority=100&lt;br /&gt;
 EOF&amp;lt;br&amp;gt;&lt;br /&gt;
 # Fedora EL9&amp;lt;br&amp;gt;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/yum.repos.d/fedoramirrors &amp;lt;&amp;lt; EOF&lt;br /&gt;
 https://d2lzkl7pfhq30w.cloudfront.net/pub/archive/fedora/linux/releases/34/Everything/x86_64/os/&lt;br /&gt;
 http://mirror.math.princeton.edu/pub/fedora-archive/fedora/linux/releases/34/Everything/x86_64/os/&lt;br /&gt;
 http://pubmirror1.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/34/Everything/x86_64/os/&lt;br /&gt;
 https://pubmirror2.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/34/Everything/x86_64/os/&lt;br /&gt;
 http://mirrors.kernel.org/fedora-buffet/archive/fedora/linux/releases/34/Everything/x86_64/os/&lt;br /&gt;
 https://dl.fedoraproject.org/pub/archive/fedora/linux/releases/34/Everything/x86_64/os/&lt;br /&gt;
 EOF&amp;lt;br&amp;gt;&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/yum.repos.d/fedora34.repo &amp;lt;&amp;lt; EOF&lt;br /&gt;
 [fedora]&lt;br /&gt;
 name=Fedora 34&lt;br /&gt;
 mirrorlist=file:///etc/yum.repos.d/fedoramirrors&lt;br /&gt;
 enabled=0&lt;br /&gt;
 gpgcheck=0&lt;br /&gt;
 priority=100&lt;br /&gt;
 EOF&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # Begin DSpam DB Install, Skip if already installed&lt;br /&gt;
 wget https://raw.githubusercontent.com/qmtoaster/dspam/master/dspamdb.sql&lt;br /&gt;
 if [ &amp;quot;$?&amp;quot; != &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
   echo &amp;quot;Error downloading dspam db: ($?), exiting...&amp;quot;&lt;br /&gt;
   exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 MYSQLPW=&lt;br /&gt;
 # Get DB password for administrator and check validity.&lt;br /&gt;
 if [ -z &amp;quot;$MYSQLPW&amp;quot; ]; then&lt;br /&gt;
    read -s -p &amp;quot;Enter MySQL/MariaDB admin password to create dspam database: &amp;quot; MYSQLPW&lt;br /&gt;
 fi&lt;br /&gt;
 credfile=~/sql.cnf&lt;br /&gt;
 echo -e &amp;quot;[client]\nuser=root\npassword=&#039;$MYSQLPW&#039;\nhost=localhost&amp;quot; &amp;gt; $credfile&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile status &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 if [ &amp;quot;$?&amp;quot; != &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
   echo &amp;quot;Bad MySQL/MariaDB administrator password or MySQL/MariaDB is not running. Exiting...&amp;quot;&lt;br /&gt;
   exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 echo &amp;quot;&amp;quot;&lt;br /&gt;
 echo &amp;quot;Dropping Dspam database if it exists already...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;use dspam&amp;quot; &amp;amp;&amp;gt; /dev/null&lt;br /&gt;
 [ &amp;quot;$?&amp;quot; = &amp;quot;0&amp;quot; ] &amp;amp;&amp;amp; mysqldump --defaults-extra-file=$credfile dspam &amp;gt; dspam.sql \&lt;br /&gt;
               &amp;amp;&amp;amp; mysql --defaults-extra-file=$credfile -e &amp;quot;drop database dspam&amp;quot; \&lt;br /&gt;
               &amp;amp;&amp;amp; echo &amp;quot;dspam db saved to dspam.sql and dropped...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # Create dspam with correct permissions&lt;br /&gt;
 echo &amp;quot;Creating Dspam database...&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile create dspam&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 echo &amp;quot;Adding dspam users and privileges...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;CREATE USER dspam@localhost IDENTIFIED BY &#039;p4ssw3rd&#039;&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;GRANT ALL PRIVILEGES ON dspam.* TO dspam@localhost&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 echo &amp;quot;Done with dspam database...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile dspam &amp;lt; dspamdb.sql&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 # End DSpam DB install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # Rspam Installation:&lt;br /&gt;
 wget https://rspamd.com/rpm-stable/centos-$rel/rspamd.repo -O /etc/yum.repos.d/rspamd.repo&lt;br /&gt;
&lt;br /&gt;
 dnf $FEDORAREPO --enablerepo=qmt-devel install dspam dspam-libs dspam-client dspam-mysql dspam-web rspamd&lt;br /&gt;
 systemctl enable --now dspam&lt;br /&gt;
 systemctl status dspam&lt;br /&gt;
 systemctl enable --now rspamd&lt;br /&gt;
 systemctl status rspamd&lt;br /&gt;
&lt;br /&gt;
 # Update Simscan&lt;br /&gt;
 dnf --enablerepo=qmt-devel update simscan&lt;br /&gt;
&lt;br /&gt;
 # Up qmail limits&lt;br /&gt;
 sed -i &#039;s/softlimit -m.*\\/softlimit -m 256000000 \\/&#039; /var/qmail/supervise/smtp/run&lt;br /&gt;
 qmailctl stop&lt;br /&gt;
 qmailctl start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # SA user prefs&lt;br /&gt;
&lt;br /&gt;
 # Create SA DB and load table into MySQL&lt;br /&gt;
 cat &amp;gt;&amp;gt; ./sadb.sql &amp;lt;&amp;lt; EOF&lt;br /&gt;
 CREATE TABLE userpref (&lt;br /&gt;
  username varchar(100) NOT NULL default &#039;&#039;,&lt;br /&gt;
  preference varchar(50) NOT NULL default &#039;&#039;,&lt;br /&gt;
  value varchar(255) NOT NULL default &#039;&#039;,&lt;br /&gt;
  prefid int(11) NOT NULL auto_increment,&lt;br /&gt;
  ts timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),&lt;br /&gt;
  PRIMARY KEY  (prefid),&lt;br /&gt;
  KEY username (username)&lt;br /&gt;
 ) ENGINE=InnoDB;&lt;br /&gt;
 EOF&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile create spamassassin&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;CREATE USER spamassassin@localhost IDENTIFIED BY &#039;p4ssw3rd&#039;&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;GRANT ALL PRIVILEGES ON spamassassin.* TO spamassassin@localhost&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 mysql --defaults-extra-file=$credfile spamassassin &amp;lt; sadb.sql&lt;br /&gt;
&lt;br /&gt;
 # Read SA SQL DB&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/mail/spamassassin/sql.cf &amp;lt;&amp;lt; EOF&lt;br /&gt;
 user_scores_dsn                  DBI:mysql:spamassassin:localhost:3306&lt;br /&gt;
 user_scores_sql_password         p4ssw3rd&lt;br /&gt;
 user_scores_sql_username         spamassassin&lt;br /&gt;
 user_scores_sql_custom_query     SELECT preference, value FROM _TABLE_ WHERE username = _USERNAME_ OR username = &#039;$GLOBAL&#039; OR username = &lt;br /&gt;
 CONCAT(&#039;%&#039;,_DOMAIN_) ORDER BY username ASC&lt;br /&gt;
 EOF&lt;br /&gt;
 echo &amp;quot;include sql.cf&amp;quot; &amp;gt;&amp;gt; /etc/mail/spamassassin/local.cf&lt;br /&gt;
&lt;br /&gt;
 # Add Per User Settings in SA SQL DB (Yours may differ)&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;\$GLOBAL&#039;,&#039;required_hits&#039;,&#039;5.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;user@dom.com&#039;,&#039;required_hits&#039;,&#039;7.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;globalspam&#039;,&#039;required_hits&#039;,&#039;5.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;select * from userpref&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
&lt;br /&gt;
 # Tell SA Daemon To Use SQL DB&lt;br /&gt;
 sed -i &#039;s/SPAMDOPTIONS=&amp;quot;.*&amp;quot;/SPAMDOPTIONS=&amp;quot;--create-prefs -m10 -q -x -u clamscan&amp;quot;/&#039; /etc/sysconfig/spamassassin&lt;br /&gt;
&lt;br /&gt;
 # Bayesian Filtering&lt;br /&gt;
 mkdir /etc/mail/spamassassin/.spamassassin&lt;br /&gt;
 chown -R clamscan:clamscan /etc/mail/spamassassin/.spamassassin&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/mail/spamassassin/bayes.cf &amp;lt;&amp;lt; EOF&lt;br /&gt;
 use_bayes 1&lt;br /&gt;
 use_bayes_rules 1&lt;br /&gt;
 bayes_auto_learn 1&lt;br /&gt;
 bayes_path /etc/mail/spamassassin/.spamassassin/bayes&lt;br /&gt;
 bayes_auto_learn_threshold_spam 6.0&lt;br /&gt;
 bayes_file_mode 0775&lt;br /&gt;
 EOF&lt;br /&gt;
 echo &amp;quot;include bayes.cf&amp;quot; &amp;gt;&amp;gt; /etc/mail/spamassassin/local.cf&lt;br /&gt;
 systemctl restart spamassassin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # Tell simscan, append to simcontrol, reload cdb&lt;br /&gt;
 dspam=yes,rspam=yes,regex&lt;br /&gt;
 optional: dspamuser=globalspam (Otherwise the first envelope &#039;rcpt to&#039; address is used)&lt;br /&gt;
 optional: spamuser=globalspam (Add to userprefs table)&lt;br /&gt;
 optional: remove spam_hits=* (Otherwise userprefs will not be used)&lt;br /&gt;
 qmailctl cdb&lt;br /&gt;
&lt;br /&gt;
 # This is my configuration:&lt;br /&gt;
 :clam=yes,spam=yes,rspam=yes,dspam=yes,spam_passthru=yes,attach=.exe:.pif:.scr&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Simscan&amp;diff=1612</id>
		<title>Simscan</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Simscan&amp;diff=1612"/>
		<updated>2025-08-21T20:23:32Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Configuration#Simscan|Back]]&amp;lt;br&amp;gt;&lt;br /&gt;
== Scanning ==&lt;br /&gt;
&lt;br /&gt;
 In /etc/tcprules.d/tcp.smtp set environment variable QMAILQUEUE to simscan binary &lt;br /&gt;
   ...,QMAILQUEUE=&amp;quot;/var/qmail/bin/simscan&amp;quot;,...&lt;br /&gt;
 Rebuild tcp.smtp&lt;br /&gt;
 # qmailctl cdb&lt;br /&gt;
&lt;br /&gt;
== Control ==&lt;br /&gt;
&lt;br /&gt;
 Simscan&#039;s control file is /var/qmail/control/simcontrol&lt;br /&gt;
 It&#039;s format looks like thus:&amp;lt;br&amp;gt;&lt;br /&gt;
 :clam=yes,spam=yes,spam_hits=9.5,spam_passthru=yes,attach=.vbs:.lnk:.scr:.wsh:.hta:.pif&lt;br /&gt;
 This tells simscan for all domains to scan with ClamAV, Spamassassin, filter attachments, queueing all mail after filtering&amp;lt;br&amp;gt;&lt;br /&gt;
 Consider the following format:&amp;lt;br&amp;gt;&lt;br /&gt;
 domain.tld:dspam=yes,rspam=yes,clam=yes,spam=yes,spam_passthru=yes,...&lt;br /&gt;
 This tells simscan for domain.tld to scan with Dspam, Rspam, ClamAV, Spamassassin,...&amp;lt;br&amp;gt;&lt;br /&gt;
 Upon edit of simcontrol the file must be put into proper format for use, run&lt;br /&gt;
 # qmailctl cdb&amp;lt;br&amp;gt;&lt;br /&gt;
 Note: simscan automatically runs dspam client (/usr/bin/dspamc). So the dspam server must be running. &lt;br /&gt;
       In order to run dspam (/usr/bin/dspam) instead set the environment variable DSPAM_BIN in either  &lt;br /&gt;
       /etc/tcprules.d/tcp.smtp or in the smtp run script.&lt;br /&gt;
&lt;br /&gt;
== Ramdisk ==&lt;br /&gt;
&lt;br /&gt;
 Use htop or other program to determine available memory for ramdisk (size=)&lt;br /&gt;
  # clamgid=$(test -z &amp;quot;$(cat /etc/passwd | grep ^clamav)&amp;quot; &amp;amp;&amp;amp; id -g clamscan 2&amp;gt;/dev/null || id -g clamav 2&amp;gt;/dev/null) &amp;amp;&amp;amp; echo $clamgid&lt;br /&gt;
  # qmailctl stop&lt;br /&gt;
  # mount -t tmpfs -o size=1024m,nodev,noexec,noatime,uid=$clamgid,gid=0,mode=0750 myramdisk /var/qmail/simscan&lt;br /&gt;
  # ls -ld /var/qmail/simscan&lt;br /&gt;
     drwxr-x--- 2 clamscan root 6 Aug 17 13:28 /var/qmail/simscan&lt;br /&gt;
  # qmailctl start&lt;br /&gt;
  # df -h /var/qmail/simscan&lt;br /&gt;
     Filesystem      Size  Used Avail Use% Mounted on&lt;br /&gt;
     myramdisk       1.0G     0  1.0G   0% /var/qmail/simscan&lt;br /&gt;
  # cp /etc/fstab /etc/fstab.bak&lt;br /&gt;
  # echo &amp;quot;myramdisk /var/qmail/simscan tmpfs size=1024m,nodev,noexec,noatime,uid=$clamgid,gid=0,mode=0750 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
  Make sure /etc/fstab file is okay before a reboot&lt;br /&gt;
  # cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
== Filtering ==&lt;br /&gt;
&lt;br /&gt;
 Install Dspam, Rspam, SA userprefs&lt;br /&gt;
&lt;br /&gt;
 # Begin Fedora Install CentOS 8 ***** ONLY *****&lt;br /&gt;
 cat &amp;gt;&amp;gt; ./ttt &amp;lt;&amp;lt; EOF&lt;br /&gt;
 https://d2lzkl7pfhq30w.cloudfront.net/pub/archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 http://mirror.math.princeton.edu/pub/fedora-archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 http://pubmirror1.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 https://pubmirror2.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 http://mirrors.kernel.org/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 https://dl.fedoraproject.org/pub/archive/fedora/linux/releases/28/Everything/x86_64/os/&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 cat &amp;gt;&amp;gt; ./ttt1 &amp;lt;&amp;lt; EOF&lt;br /&gt;
 [fedora]&lt;br /&gt;
 name=Fedora 28&lt;br /&gt;
 mirrorlist=file:///etc/yum.repos.d/fedoramirrors&lt;br /&gt;
 enabled=0&lt;br /&gt;
 gpgcheck=0&lt;br /&gt;
 priority=100&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 # End Fedora Install CentOS 8 ***** ONLY *****&lt;br /&gt;
&lt;br /&gt;
 # Begin DSpam DB Install, Skip if already installed&lt;br /&gt;
 wget https://raw.githubusercontent.com/qmtoaster/dspam/master/dspamdb.sql&lt;br /&gt;
 if [ &amp;quot;$?&amp;quot; != &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
   echo &amp;quot;Error downloading dspam db: ($?), exiting...&amp;quot;&lt;br /&gt;
   exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 MYSQLPW=&lt;br /&gt;
 # Get DB password for administrator and check validity.&lt;br /&gt;
 if [ -z &amp;quot;$MYSQLPW&amp;quot; ]; then&lt;br /&gt;
    read -s -p &amp;quot;Enter MySQL/MariaDB admin password to create dspam database: &amp;quot; MYSQLPW&lt;br /&gt;
 fi&lt;br /&gt;
 credfile=~/sql.cnf&lt;br /&gt;
 echo -e &amp;quot;[client]\nuser=root\npassword=&#039;$MYSQLPW&#039;\nhost=localhost&amp;quot; &amp;gt; $credfile&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile status &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 if [ &amp;quot;$?&amp;quot; != &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
   echo &amp;quot;Bad MySQL/MariaDB administrator password or MySQL/MariaDB is not running. Exiting...&amp;quot;&lt;br /&gt;
   exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 echo &amp;quot;&amp;quot;&lt;br /&gt;
 echo &amp;quot;Dropping Dspam database if it exists already...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;use dspam&amp;quot; &amp;amp;&amp;gt; /dev/null&lt;br /&gt;
 [ &amp;quot;$?&amp;quot; = &amp;quot;0&amp;quot; ] &amp;amp;&amp;amp; mysqldump --defaults-extra-file=$credfile dspam &amp;gt; dspam.sql \&lt;br /&gt;
               &amp;amp;&amp;amp; mysql --defaults-extra-file=$credfile -e &amp;quot;drop database dspam&amp;quot; \&lt;br /&gt;
               &amp;amp;&amp;amp; echo &amp;quot;dspam db saved to dspam.sql and dropped...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # Create dspam with correct permissions&lt;br /&gt;
 echo &amp;quot;Creating Dspam database...&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile create dspam&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 echo &amp;quot;Adding dspam users and privileges...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;CREATE USER dspam@localhost IDENTIFIED BY &#039;p4ssw3rd&#039;&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;GRANT ALL PRIVILEGES ON dspam.* TO dspam@localhost&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 echo &amp;quot;Done with dspam database...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile dspam &amp;lt; dspamdb.sql&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 # End DSpam DB install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # Rspam Installation:&lt;br /&gt;
 wget https://rspamd.com/rpm-stable/centos-$rel/rspamd.repo -O /etc/yum.repos.d/rspamd.repo&lt;br /&gt;
&lt;br /&gt;
 dnf $FEDORAREPO --enablerepo=qmt-devel install dspam dspam-libs dspam-client dspam-mysql dspam-web rspamd&lt;br /&gt;
 systemctl enable --now dspam&lt;br /&gt;
 systemctl status dspam&lt;br /&gt;
 systemctl enable --now rspamd&lt;br /&gt;
 systemctl status rspamd&lt;br /&gt;
&lt;br /&gt;
 # Update Simscan&lt;br /&gt;
 dnf --enablerepo=qmt-devel update simscan&lt;br /&gt;
&lt;br /&gt;
 # Up qmail limits&lt;br /&gt;
 sed -i &#039;s/softlimit -m.*\\/softlimit -m 256000000 \\/&#039; /var/qmail/supervise/smtp/run&lt;br /&gt;
 qmailctl stop&lt;br /&gt;
 qmailctl start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # SA user prefs&lt;br /&gt;
&lt;br /&gt;
 # Create SA DB and load table into MySQL&lt;br /&gt;
 cat &amp;gt;&amp;gt; ./sadb.sql &amp;lt;&amp;lt; EOF&lt;br /&gt;
 CREATE TABLE userpref (&lt;br /&gt;
  username varchar(100) NOT NULL default &#039;&#039;,&lt;br /&gt;
  preference varchar(50) NOT NULL default &#039;&#039;,&lt;br /&gt;
  value varchar(255) NOT NULL default &#039;&#039;,&lt;br /&gt;
  prefid int(11) NOT NULL auto_increment,&lt;br /&gt;
  ts timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),&lt;br /&gt;
  PRIMARY KEY  (prefid),&lt;br /&gt;
  KEY username (username)&lt;br /&gt;
 ) ENGINE=InnoDB;&lt;br /&gt;
 EOF&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile create spamassassin&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;CREATE USER spamassassin@localhost IDENTIFIED BY &#039;p4ssw3rd&#039;&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;GRANT ALL PRIVILEGES ON spamassassin.* TO spamassassin@localhost&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 mysql --defaults-extra-file=$credfile spamassassin &amp;lt; sadb.sql&lt;br /&gt;
&lt;br /&gt;
 # Read SA SQL DB&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/mail/spamassassin/sql.cf &amp;lt;&amp;lt; EOF&lt;br /&gt;
 user_scores_dsn                  DBI:mysql:spamassassin:localhost:3306&lt;br /&gt;
 user_scores_sql_password         p4ssw3rd&lt;br /&gt;
 user_scores_sql_username         spamassassin&lt;br /&gt;
 user_scores_sql_custom_query     SELECT preference, value FROM _TABLE_ WHERE username = _USERNAME_ OR username = &#039;$GLOBAL&#039; OR username = &lt;br /&gt;
 CONCAT(&#039;%&#039;,_DOMAIN_) ORDER BY username ASC&lt;br /&gt;
 EOF&lt;br /&gt;
 echo &amp;quot;include sql.cf&amp;quot; &amp;gt;&amp;gt; /etc/mail/spamassassin/local.cf&lt;br /&gt;
&lt;br /&gt;
 # Add Per User Settings in SA SQL DB (Yours may differ)&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;\$GLOBAL&#039;,&#039;required_hits&#039;,&#039;5.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;user@dom.com&#039;,&#039;required_hits&#039;,&#039;7.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;globalspam&#039;,&#039;required_hits&#039;,&#039;5.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;select * from userpref&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
&lt;br /&gt;
 # Tell SA Daemon To Use SQL DB&lt;br /&gt;
 sed -i &#039;s/SPAMDOPTIONS=&amp;quot;.*&amp;quot;/SPAMDOPTIONS=&amp;quot;--create-prefs -m10 -q -x -u clamscan&amp;quot;/&#039; /etc/sysconfig/spamassassin&lt;br /&gt;
&lt;br /&gt;
 # Bayesian Filtering&lt;br /&gt;
 mkdir /etc/mail/spamassassin/.spamassassin&lt;br /&gt;
 chown -R clamscan:clamscan /etc/mail/spamassassin/.spamassassin&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/mail/spamassassin/bayes.cf &amp;lt;&amp;lt; EOF&lt;br /&gt;
 use_bayes 1&lt;br /&gt;
 use_bayes_rules 1&lt;br /&gt;
 bayes_auto_learn 1&lt;br /&gt;
 bayes_path /etc/mail/spamassassin/.spamassassin/bayes&lt;br /&gt;
 bayes_auto_learn_threshold_spam 6.0&lt;br /&gt;
 bayes_file_mode 0775&lt;br /&gt;
 EOF&lt;br /&gt;
 echo &amp;quot;include bayes.cf&amp;quot; &amp;gt;&amp;gt; /etc/mail/spamassassin/local.cf&lt;br /&gt;
 systemctl restart spamassassin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # Tell simscan, append to simcontrol, reload cdb&lt;br /&gt;
 dspam=yes,rspam=yes,regex&lt;br /&gt;
 optional: dspamuser=globalspam (Otherwise the first envelope &#039;rcpt to&#039; address is used)&lt;br /&gt;
 optional: spamuser=globalspam (Add to userprefs table)&lt;br /&gt;
 optional: remove spam_hits=* (Otherwise userprefs will not be used)&lt;br /&gt;
 qmailctl cdb&lt;br /&gt;
&lt;br /&gt;
 # This is my configuration:&lt;br /&gt;
 :clam=yes,spam=yes,rspam=yes,dspam=yes,spam_passthru=yes,attach=.exe:.pif:.scr&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Simscan&amp;diff=1611</id>
		<title>Simscan</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Simscan&amp;diff=1611"/>
		<updated>2025-08-21T20:08:05Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Configuration#Simscan|Back]]&amp;lt;br&amp;gt;&lt;br /&gt;
== Scanning ==&lt;br /&gt;
&lt;br /&gt;
 In /etc/tcprules.d/tcp.smtp set environment variable QMAILQUEUE to simscan binary &lt;br /&gt;
   ...,QMAILQUEUE=&amp;quot;/var/qmail/bin/simscan&amp;quot;,...&lt;br /&gt;
 Rebuild tcp.smtp&lt;br /&gt;
 # qmailctl cdb&lt;br /&gt;
&lt;br /&gt;
== Control ==&lt;br /&gt;
&lt;br /&gt;
 Simscan&#039;s control file is /var/qmail/control/simcontrol&lt;br /&gt;
 It&#039;s format looks like thus:&amp;lt;br&amp;gt;&lt;br /&gt;
 :clam=yes,spam=yes,spam_hits=9.5,spam_passthru=yes,attach=.vbs:.lnk:.scr:.wsh:.hta:.pif&lt;br /&gt;
 This tells simscan for all domains to scan with ClamAV, Spamassassin, filter attachments, queueing all mail after filtering&amp;lt;br&amp;gt;&lt;br /&gt;
 Consider the following format:&amp;lt;br&amp;gt;&lt;br /&gt;
 domain.tld:dspam=yes,rspam=yes,clam=yes,spam=yes,spam_passthru=yes,...&lt;br /&gt;
 This tells simscan for domain.tld to scan with Dspam, Rspam, ClamAV, Spamassassin,...&amp;lt;br&amp;gt;&lt;br /&gt;
 Upon edit of simcontrol the file must be put into proper format for use, run&lt;br /&gt;
 # qmailctl cdb&amp;lt;br&amp;gt;&lt;br /&gt;
 Note: simscan automatically runs dspam client (/usr/bin/dspamc). So the dspam server must be running. &lt;br /&gt;
       In order to run dspam (/usr/bin/dspam) instead set the environment variable DSPAM_BIN in either  &lt;br /&gt;
       /etc/tcprules.d/tcp.smtp or in the smtp run script.&lt;br /&gt;
&lt;br /&gt;
== Ramdisk ==&lt;br /&gt;
&lt;br /&gt;
 Use htop or other program to determine available memory for ramdisk (size=)&lt;br /&gt;
  # clamgid=$(test -z &amp;quot;$(cat /etc/passwd | grep ^clamav)&amp;quot; &amp;amp;&amp;amp; id -g clamscan 2&amp;gt;/dev/null || id -g clamav 2&amp;gt;/dev/null) &amp;amp;&amp;amp; echo $clamgid&lt;br /&gt;
  # qmailctl stop&lt;br /&gt;
  # mount -t tmpfs -o size=1024m,nodev,noexec,noatime,uid=$clamgid,gid=0,mode=0750 myramdisk /var/qmail/simscan&lt;br /&gt;
  # ls -ld /var/qmail/simscan&lt;br /&gt;
     drwxr-x--- 2 clamscan root 6 Aug 17 13:28 /var/qmail/simscan&lt;br /&gt;
  # qmailctl start&lt;br /&gt;
  # df -h /var/qmail/simscan&lt;br /&gt;
     Filesystem      Size  Used Avail Use% Mounted on&lt;br /&gt;
     myramdisk       1.0G     0  1.0G   0% /var/qmail/simscan&lt;br /&gt;
  # cp /etc/fstab /etc/fstab.bak&lt;br /&gt;
  # echo &amp;quot;myramdisk /var/qmail/simscan tmpfs size=1024m,nodev,noexec,noatime,uid=$clamgid,gid=0,mode=0750 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
  Make sure /etc/fstab file is okay before a reboot&lt;br /&gt;
  # cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
== Filtering ==&lt;br /&gt;
&lt;br /&gt;
 FEDORAREPO=&lt;br /&gt;
 Install Dspam, Rspam, SA userprefs&lt;br /&gt;
&lt;br /&gt;
 # Begin Fedora Install CentOS 8 ***** ONLY *****&lt;br /&gt;
 rel=`grep &amp;quot;release 8&amp;quot; /etc/*-release`&lt;br /&gt;
 if [[ ! -z $rel ]]&lt;br /&gt;
 then&lt;br /&gt;
  rel=8&lt;br /&gt;
  FEDORAREPO=--enablerepo=fedora&lt;br /&gt;
  sites=( https://d2lzkl7pfhq30w.cloudfront.net/pub/archive/fedora/linux/releases/28/Everything/x86_64/os/ &lt;br /&gt;
  http://mirror.math.princeton.edu/pub/fedora-archive/fedora/linux/releases/28/Everything/x86_64/os/ &lt;br /&gt;
  http://pubmirror1.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/ &lt;br /&gt;
  https://pubmirror2.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/ &lt;br /&gt;
  http://mirrors.kernel.org/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/ &lt;br /&gt;
  https://dl.fedoraproject.org/pub/archive/fedora/linux/releases/28/Everything/x86_64/os/ )&lt;br /&gt;
  printf &#039;%s\n%s\n%s\n%s\n%s\n%s\n&#039; &#039;[fedora]&#039; &#039;name=Fedora 28&#039; &#039;mirrorlist=file:///etc/yum.repos.d/fedoramirrors&#039; \&lt;br /&gt;
         &#039;enabled=0&#039; &#039;gpgcheck=0&#039; &#039;priority=100&#039; &amp;gt; /etc/yum.repos.d/fedora28.repo&lt;br /&gt;
  printf &#039;%s\n%s\n%s\n%s\n%s\n%s\n&#039; &amp;quot;${sites[0]}&amp;quot; &amp;quot;${sites[1]}&amp;quot; &amp;quot;${sites[2]}&amp;quot; &amp;quot;{$sites[3]}&amp;quot; &amp;quot;${sites[4]}&amp;quot; &amp;quot;${sites[5]}&amp;quot; \&lt;br /&gt;
        &amp;gt; /etc/yum.repos.d/fedoramirrors&lt;br /&gt;
 else&lt;br /&gt;
    rel=7&lt;br /&gt;
 fi&lt;br /&gt;
 # End Fedora Install CentOS 8 ***** ONLY *****&lt;br /&gt;
&lt;br /&gt;
 # Begin DSpam DB Install, Skip if already installed&lt;br /&gt;
 wget https://raw.githubusercontent.com/qmtoaster/dspam/master/dspamdb.sql&lt;br /&gt;
 if [ &amp;quot;$?&amp;quot; != &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
   echo &amp;quot;Error downloading dspam db: ($?), exiting...&amp;quot;&lt;br /&gt;
   exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 MYSQLPW=&lt;br /&gt;
 # Get DB password for administrator and check validity.&lt;br /&gt;
 if [ -z &amp;quot;$MYSQLPW&amp;quot; ]; then&lt;br /&gt;
    read -s -p &amp;quot;Enter MySQL/MariaDB admin password to create dspam database: &amp;quot; MYSQLPW&lt;br /&gt;
 fi&lt;br /&gt;
 credfile=~/sql.cnf&lt;br /&gt;
 echo -e &amp;quot;[client]\nuser=root\npassword=&#039;$MYSQLPW&#039;\nhost=localhost&amp;quot; &amp;gt; $credfile&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile status &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 if [ &amp;quot;$?&amp;quot; != &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
   echo &amp;quot;Bad MySQL/MariaDB administrator password or MySQL/MariaDB is not running. Exiting...&amp;quot;&lt;br /&gt;
   exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 echo &amp;quot;&amp;quot;&lt;br /&gt;
 echo &amp;quot;Dropping Dspam database if it exists already...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;use dspam&amp;quot; &amp;amp;&amp;gt; /dev/null&lt;br /&gt;
 [ &amp;quot;$?&amp;quot; = &amp;quot;0&amp;quot; ] &amp;amp;&amp;amp; mysqldump --defaults-extra-file=$credfile dspam &amp;gt; dspam.sql \&lt;br /&gt;
               &amp;amp;&amp;amp; mysql --defaults-extra-file=$credfile -e &amp;quot;drop database dspam&amp;quot; \&lt;br /&gt;
               &amp;amp;&amp;amp; echo &amp;quot;dspam db saved to dspam.sql and dropped...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # Create dspam with correct permissions&lt;br /&gt;
 echo &amp;quot;Creating Dspam database...&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile create dspam&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 echo &amp;quot;Adding dspam users and privileges...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;CREATE USER dspam@localhost IDENTIFIED BY &#039;p4ssw3rd&#039;&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;GRANT ALL PRIVILEGES ON dspam.* TO dspam@localhost&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 echo &amp;quot;Done with dspam database...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile dspam &amp;lt; dspamdb.sql&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 # End DSpam DB install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # Rspam Installation:&lt;br /&gt;
 wget https://rspamd.com/rpm-stable/centos-$rel/rspamd.repo -O /etc/yum.repos.d/rspamd.repo&lt;br /&gt;
&lt;br /&gt;
 dnf $FEDORAREPO --enablerepo=qmt-devel install dspam dspam-libs dspam-client dspam-mysql dspam-web rspamd&lt;br /&gt;
 systemctl enable --now dspam&lt;br /&gt;
 systemctl status dspam&lt;br /&gt;
 systemctl enable --now rspamd&lt;br /&gt;
 systemctl status rspamd&lt;br /&gt;
&lt;br /&gt;
 # Update Simscan&lt;br /&gt;
 dnf --enablerepo=qmt-devel update simscan&lt;br /&gt;
&lt;br /&gt;
 # Up qmail limits&lt;br /&gt;
 sed -i &#039;s/softlimit -m.*\\/softlimit -m 256000000 \\/&#039; /var/qmail/supervise/smtp/run&lt;br /&gt;
 qmailctl stop&lt;br /&gt;
 qmailctl start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # SA user prefs&lt;br /&gt;
&lt;br /&gt;
 # Create SA DB and load table into MySQL&lt;br /&gt;
 cat &amp;gt;&amp;gt; ./sadb.sql &amp;lt;&amp;lt; EOF&lt;br /&gt;
 CREATE TABLE userpref (&lt;br /&gt;
  username varchar(100) NOT NULL default &#039;&#039;,&lt;br /&gt;
  preference varchar(50) NOT NULL default &#039;&#039;,&lt;br /&gt;
  value varchar(255) NOT NULL default &#039;&#039;,&lt;br /&gt;
  prefid int(11) NOT NULL auto_increment,&lt;br /&gt;
  ts timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),&lt;br /&gt;
  PRIMARY KEY  (prefid),&lt;br /&gt;
  KEY username (username)&lt;br /&gt;
 ) ENGINE=InnoDB;&lt;br /&gt;
 EOF&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile create spamassassin&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;CREATE USER spamassassin@localhost IDENTIFIED BY &#039;p4ssw3rd&#039;&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;GRANT ALL PRIVILEGES ON spamassassin.* TO spamassassin@localhost&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 mysql --defaults-extra-file=$credfile spamassassin &amp;lt; sadb.sql&lt;br /&gt;
&lt;br /&gt;
 # Read SA SQL DB&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/mail/spamassassin/sql.cf &amp;lt;&amp;lt; EOF&lt;br /&gt;
 user_scores_dsn                  DBI:mysql:spamassassin:localhost:3306&lt;br /&gt;
 user_scores_sql_password         p4ssw3rd&lt;br /&gt;
 user_scores_sql_username         spamassassin&lt;br /&gt;
 user_scores_sql_custom_query     SELECT preference, value FROM _TABLE_ WHERE username = _USERNAME_ OR username = &#039;$GLOBAL&#039; OR username = &lt;br /&gt;
 CONCAT(&#039;%&#039;,_DOMAIN_) ORDER BY username ASC&lt;br /&gt;
 EOF&lt;br /&gt;
 echo &amp;quot;include sql.cf&amp;quot; &amp;gt;&amp;gt; /etc/mail/spamassassin/local.cf&lt;br /&gt;
&lt;br /&gt;
 # Add Per User Settings in SA SQL DB (Yours may differ)&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;\$GLOBAL&#039;,&#039;required_hits&#039;,&#039;5.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;user@dom.com&#039;,&#039;required_hits&#039;,&#039;7.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;globalspam&#039;,&#039;required_hits&#039;,&#039;5.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;select * from userpref&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
&lt;br /&gt;
 # Tell SA Daemon To Use SQL DB&lt;br /&gt;
 sed -i &#039;s/SPAMDOPTIONS=&amp;quot;.*&amp;quot;/SPAMDOPTIONS=&amp;quot;--create-prefs -m10 -q -x -u clamscan&amp;quot;/&#039; /etc/sysconfig/spamassassin&lt;br /&gt;
&lt;br /&gt;
 # Bayesian Filtering&lt;br /&gt;
 mkdir /etc/mail/spamassassin/.spamassassin&lt;br /&gt;
 chown -R clamscan:clamscan /etc/mail/spamassassin/.spamassassin&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/mail/spamassassin/bayes.cf &amp;lt;&amp;lt; EOF&lt;br /&gt;
 use_bayes 1&lt;br /&gt;
 use_bayes_rules 1&lt;br /&gt;
 bayes_auto_learn 1&lt;br /&gt;
 bayes_path /etc/mail/spamassassin/.spamassassin/bayes&lt;br /&gt;
 bayes_auto_learn_threshold_spam 6.0&lt;br /&gt;
 bayes_file_mode 0775&lt;br /&gt;
 EOF&lt;br /&gt;
 echo &amp;quot;include bayes.cf&amp;quot; &amp;gt;&amp;gt; /etc/mail/spamassassin/local.cf&lt;br /&gt;
 systemctl restart spamassassin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # Tell simscan, append to simcontrol, reload cdb&lt;br /&gt;
 dspam=yes,rspam=yes,regex&lt;br /&gt;
 optional: dspamuser=globalspam (Otherwise the first envelope &#039;rcpt to&#039; address is used)&lt;br /&gt;
 optional: spamuser=globalspam (Add to userprefs table)&lt;br /&gt;
 optional: remove spam_hits=* (Otherwise userprefs will not be used)&lt;br /&gt;
 qmailctl cdb&lt;br /&gt;
&lt;br /&gt;
 # This is my configuration:&lt;br /&gt;
 :clam=yes,spam=yes,rspam=yes,dspam=yes,spam_passthru=yes,attach=.exe:.pif:.scr&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Simscan&amp;diff=1610</id>
		<title>Simscan</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Simscan&amp;diff=1610"/>
		<updated>2025-08-21T20:07:30Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Configuration#Simscan|Back]]&amp;lt;br&amp;gt;&lt;br /&gt;
== Scanning ==&lt;br /&gt;
&lt;br /&gt;
 In /etc/tcprules.d/tcp.smtp set environment variable QMAILQUEUE to simscan binary &lt;br /&gt;
   ...,QMAILQUEUE=&amp;quot;/var/qmail/bin/simscan&amp;quot;,...&lt;br /&gt;
 Rebuild tcp.smtp&lt;br /&gt;
 # qmailctl cdb&lt;br /&gt;
&lt;br /&gt;
== Control ==&lt;br /&gt;
&lt;br /&gt;
 Simscan&#039;s control file is /var/qmail/control/simcontrol&lt;br /&gt;
 It&#039;s format looks like thus:&amp;lt;br&amp;gt;&lt;br /&gt;
 :clam=yes,spam=yes,spam_hits=9.5,spam_passthru=yes,attach=.vbs:.lnk:.scr:.wsh:.hta:.pif&lt;br /&gt;
 This tells simscan for all domains to scan with ClamAV, Spamassassin, filter attachments, queueing all mail after filtering&amp;lt;br&amp;gt;&lt;br /&gt;
 Consider the following format:&amp;lt;br&amp;gt;&lt;br /&gt;
 domain.tld:dspam=yes,rspam=yes,clam=yes,spam=yes,spam_passthru=yes,...&lt;br /&gt;
 This tells simscan for domain.tld to scan with Dspam, Rspam, ClamAV, Spamassassin,...&amp;lt;br&amp;gt;&lt;br /&gt;
 Upon edit of simcontrol the file must be put into proper format for use, run&lt;br /&gt;
 # qmailctl cdb&amp;lt;br&amp;gt;&lt;br /&gt;
 Note: simscan automatically runs dspam client (/usr/bin/dspamc). So the dspam server must be running. &lt;br /&gt;
       In order to run dspam (/usr/bin/dspam) set the environment variable DSPAM_BIN in either  &lt;br /&gt;
       /etc/tcprules.d/tcp.smtp or in the smtp run script.&lt;br /&gt;
&lt;br /&gt;
== Ramdisk ==&lt;br /&gt;
&lt;br /&gt;
 Use htop or other program to determine available memory for ramdisk (size=)&lt;br /&gt;
  # clamgid=$(test -z &amp;quot;$(cat /etc/passwd | grep ^clamav)&amp;quot; &amp;amp;&amp;amp; id -g clamscan 2&amp;gt;/dev/null || id -g clamav 2&amp;gt;/dev/null) &amp;amp;&amp;amp; echo $clamgid&lt;br /&gt;
  # qmailctl stop&lt;br /&gt;
  # mount -t tmpfs -o size=1024m,nodev,noexec,noatime,uid=$clamgid,gid=0,mode=0750 myramdisk /var/qmail/simscan&lt;br /&gt;
  # ls -ld /var/qmail/simscan&lt;br /&gt;
     drwxr-x--- 2 clamscan root 6 Aug 17 13:28 /var/qmail/simscan&lt;br /&gt;
  # qmailctl start&lt;br /&gt;
  # df -h /var/qmail/simscan&lt;br /&gt;
     Filesystem      Size  Used Avail Use% Mounted on&lt;br /&gt;
     myramdisk       1.0G     0  1.0G   0% /var/qmail/simscan&lt;br /&gt;
  # cp /etc/fstab /etc/fstab.bak&lt;br /&gt;
  # echo &amp;quot;myramdisk /var/qmail/simscan tmpfs size=1024m,nodev,noexec,noatime,uid=$clamgid,gid=0,mode=0750 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
  Make sure /etc/fstab file is okay before a reboot&lt;br /&gt;
  # cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
== Filtering ==&lt;br /&gt;
&lt;br /&gt;
 FEDORAREPO=&lt;br /&gt;
 Install Dspam, Rspam, SA userprefs&lt;br /&gt;
&lt;br /&gt;
 # Begin Fedora Install CentOS 8 ***** ONLY *****&lt;br /&gt;
 rel=`grep &amp;quot;release 8&amp;quot; /etc/*-release`&lt;br /&gt;
 if [[ ! -z $rel ]]&lt;br /&gt;
 then&lt;br /&gt;
  rel=8&lt;br /&gt;
  FEDORAREPO=--enablerepo=fedora&lt;br /&gt;
  sites=( https://d2lzkl7pfhq30w.cloudfront.net/pub/archive/fedora/linux/releases/28/Everything/x86_64/os/ &lt;br /&gt;
  http://mirror.math.princeton.edu/pub/fedora-archive/fedora/linux/releases/28/Everything/x86_64/os/ &lt;br /&gt;
  http://pubmirror1.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/ &lt;br /&gt;
  https://pubmirror2.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/ &lt;br /&gt;
  http://mirrors.kernel.org/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/ &lt;br /&gt;
  https://dl.fedoraproject.org/pub/archive/fedora/linux/releases/28/Everything/x86_64/os/ )&lt;br /&gt;
  printf &#039;%s\n%s\n%s\n%s\n%s\n%s\n&#039; &#039;[fedora]&#039; &#039;name=Fedora 28&#039; &#039;mirrorlist=file:///etc/yum.repos.d/fedoramirrors&#039; \&lt;br /&gt;
         &#039;enabled=0&#039; &#039;gpgcheck=0&#039; &#039;priority=100&#039; &amp;gt; /etc/yum.repos.d/fedora28.repo&lt;br /&gt;
  printf &#039;%s\n%s\n%s\n%s\n%s\n%s\n&#039; &amp;quot;${sites[0]}&amp;quot; &amp;quot;${sites[1]}&amp;quot; &amp;quot;${sites[2]}&amp;quot; &amp;quot;{$sites[3]}&amp;quot; &amp;quot;${sites[4]}&amp;quot; &amp;quot;${sites[5]}&amp;quot; \&lt;br /&gt;
        &amp;gt; /etc/yum.repos.d/fedoramirrors&lt;br /&gt;
 else&lt;br /&gt;
    rel=7&lt;br /&gt;
 fi&lt;br /&gt;
 # End Fedora Install CentOS 8 ***** ONLY *****&lt;br /&gt;
&lt;br /&gt;
 # Begin DSpam DB Install, Skip if already installed&lt;br /&gt;
 wget https://raw.githubusercontent.com/qmtoaster/dspam/master/dspamdb.sql&lt;br /&gt;
 if [ &amp;quot;$?&amp;quot; != &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
   echo &amp;quot;Error downloading dspam db: ($?), exiting...&amp;quot;&lt;br /&gt;
   exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 MYSQLPW=&lt;br /&gt;
 # Get DB password for administrator and check validity.&lt;br /&gt;
 if [ -z &amp;quot;$MYSQLPW&amp;quot; ]; then&lt;br /&gt;
    read -s -p &amp;quot;Enter MySQL/MariaDB admin password to create dspam database: &amp;quot; MYSQLPW&lt;br /&gt;
 fi&lt;br /&gt;
 credfile=~/sql.cnf&lt;br /&gt;
 echo -e &amp;quot;[client]\nuser=root\npassword=&#039;$MYSQLPW&#039;\nhost=localhost&amp;quot; &amp;gt; $credfile&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile status &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 if [ &amp;quot;$?&amp;quot; != &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
   echo &amp;quot;Bad MySQL/MariaDB administrator password or MySQL/MariaDB is not running. Exiting...&amp;quot;&lt;br /&gt;
   exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 echo &amp;quot;&amp;quot;&lt;br /&gt;
 echo &amp;quot;Dropping Dspam database if it exists already...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;use dspam&amp;quot; &amp;amp;&amp;gt; /dev/null&lt;br /&gt;
 [ &amp;quot;$?&amp;quot; = &amp;quot;0&amp;quot; ] &amp;amp;&amp;amp; mysqldump --defaults-extra-file=$credfile dspam &amp;gt; dspam.sql \&lt;br /&gt;
               &amp;amp;&amp;amp; mysql --defaults-extra-file=$credfile -e &amp;quot;drop database dspam&amp;quot; \&lt;br /&gt;
               &amp;amp;&amp;amp; echo &amp;quot;dspam db saved to dspam.sql and dropped...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # Create dspam with correct permissions&lt;br /&gt;
 echo &amp;quot;Creating Dspam database...&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile create dspam&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 echo &amp;quot;Adding dspam users and privileges...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;CREATE USER dspam@localhost IDENTIFIED BY &#039;p4ssw3rd&#039;&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;GRANT ALL PRIVILEGES ON dspam.* TO dspam@localhost&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 echo &amp;quot;Done with dspam database...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile dspam &amp;lt; dspamdb.sql&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 # End DSpam DB install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # Rspam Installation:&lt;br /&gt;
 wget https://rspamd.com/rpm-stable/centos-$rel/rspamd.repo -O /etc/yum.repos.d/rspamd.repo&lt;br /&gt;
&lt;br /&gt;
 dnf $FEDORAREPO --enablerepo=qmt-devel install dspam dspam-libs dspam-client dspam-mysql dspam-web rspamd&lt;br /&gt;
 systemctl enable --now dspam&lt;br /&gt;
 systemctl status dspam&lt;br /&gt;
 systemctl enable --now rspamd&lt;br /&gt;
 systemctl status rspamd&lt;br /&gt;
&lt;br /&gt;
 # Update Simscan&lt;br /&gt;
 dnf --enablerepo=qmt-devel update simscan&lt;br /&gt;
&lt;br /&gt;
 # Up qmail limits&lt;br /&gt;
 sed -i &#039;s/softlimit -m.*\\/softlimit -m 256000000 \\/&#039; /var/qmail/supervise/smtp/run&lt;br /&gt;
 qmailctl stop&lt;br /&gt;
 qmailctl start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # SA user prefs&lt;br /&gt;
&lt;br /&gt;
 # Create SA DB and load table into MySQL&lt;br /&gt;
 cat &amp;gt;&amp;gt; ./sadb.sql &amp;lt;&amp;lt; EOF&lt;br /&gt;
 CREATE TABLE userpref (&lt;br /&gt;
  username varchar(100) NOT NULL default &#039;&#039;,&lt;br /&gt;
  preference varchar(50) NOT NULL default &#039;&#039;,&lt;br /&gt;
  value varchar(255) NOT NULL default &#039;&#039;,&lt;br /&gt;
  prefid int(11) NOT NULL auto_increment,&lt;br /&gt;
  ts timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),&lt;br /&gt;
  PRIMARY KEY  (prefid),&lt;br /&gt;
  KEY username (username)&lt;br /&gt;
 ) ENGINE=InnoDB;&lt;br /&gt;
 EOF&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile create spamassassin&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;CREATE USER spamassassin@localhost IDENTIFIED BY &#039;p4ssw3rd&#039;&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;GRANT ALL PRIVILEGES ON spamassassin.* TO spamassassin@localhost&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 mysql --defaults-extra-file=$credfile spamassassin &amp;lt; sadb.sql&lt;br /&gt;
&lt;br /&gt;
 # Read SA SQL DB&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/mail/spamassassin/sql.cf &amp;lt;&amp;lt; EOF&lt;br /&gt;
 user_scores_dsn                  DBI:mysql:spamassassin:localhost:3306&lt;br /&gt;
 user_scores_sql_password         p4ssw3rd&lt;br /&gt;
 user_scores_sql_username         spamassassin&lt;br /&gt;
 user_scores_sql_custom_query     SELECT preference, value FROM _TABLE_ WHERE username = _USERNAME_ OR username = &#039;$GLOBAL&#039; OR username = &lt;br /&gt;
 CONCAT(&#039;%&#039;,_DOMAIN_) ORDER BY username ASC&lt;br /&gt;
 EOF&lt;br /&gt;
 echo &amp;quot;include sql.cf&amp;quot; &amp;gt;&amp;gt; /etc/mail/spamassassin/local.cf&lt;br /&gt;
&lt;br /&gt;
 # Add Per User Settings in SA SQL DB (Yours may differ)&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;\$GLOBAL&#039;,&#039;required_hits&#039;,&#039;5.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;user@dom.com&#039;,&#039;required_hits&#039;,&#039;7.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;globalspam&#039;,&#039;required_hits&#039;,&#039;5.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;select * from userpref&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
&lt;br /&gt;
 # Tell SA Daemon To Use SQL DB&lt;br /&gt;
 sed -i &#039;s/SPAMDOPTIONS=&amp;quot;.*&amp;quot;/SPAMDOPTIONS=&amp;quot;--create-prefs -m10 -q -x -u clamscan&amp;quot;/&#039; /etc/sysconfig/spamassassin&lt;br /&gt;
&lt;br /&gt;
 # Bayesian Filtering&lt;br /&gt;
 mkdir /etc/mail/spamassassin/.spamassassin&lt;br /&gt;
 chown -R clamscan:clamscan /etc/mail/spamassassin/.spamassassin&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/mail/spamassassin/bayes.cf &amp;lt;&amp;lt; EOF&lt;br /&gt;
 use_bayes 1&lt;br /&gt;
 use_bayes_rules 1&lt;br /&gt;
 bayes_auto_learn 1&lt;br /&gt;
 bayes_path /etc/mail/spamassassin/.spamassassin/bayes&lt;br /&gt;
 bayes_auto_learn_threshold_spam 6.0&lt;br /&gt;
 bayes_file_mode 0775&lt;br /&gt;
 EOF&lt;br /&gt;
 echo &amp;quot;include bayes.cf&amp;quot; &amp;gt;&amp;gt; /etc/mail/spamassassin/local.cf&lt;br /&gt;
 systemctl restart spamassassin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # Tell simscan, append to simcontrol, reload cdb&lt;br /&gt;
 dspam=yes,rspam=yes,regex&lt;br /&gt;
 optional: dspamuser=globalspam (Otherwise the first envelope &#039;rcpt to&#039; address is used)&lt;br /&gt;
 optional: spamuser=globalspam (Add to userprefs table)&lt;br /&gt;
 optional: remove spam_hits=* (Otherwise userprefs will not be used)&lt;br /&gt;
 qmailctl cdb&lt;br /&gt;
&lt;br /&gt;
 # This is my configuration:&lt;br /&gt;
 :clam=yes,spam=yes,rspam=yes,dspam=yes,spam_passthru=yes,attach=.exe:.pif:.scr&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Simscan&amp;diff=1609</id>
		<title>Simscan</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Simscan&amp;diff=1609"/>
		<updated>2025-08-21T20:06:50Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Configuration#Simscan|Back]]&amp;lt;br&amp;gt;&lt;br /&gt;
== Scanning ==&lt;br /&gt;
&lt;br /&gt;
 In /etc/tcprules.d/tcp.smtp set environment variable QMAILQUEUE to simscan binary &lt;br /&gt;
   ...,QMAILQUEUE=&amp;quot;/var/qmail/bin/simscan&amp;quot;,...&lt;br /&gt;
 Rebuild tcp.smtp&lt;br /&gt;
 # qmailctl cdb&lt;br /&gt;
&lt;br /&gt;
== Control ==&lt;br /&gt;
&lt;br /&gt;
 Simscan&#039;s control file is /var/qmail/control/simcontrol&lt;br /&gt;
 It&#039;s format looks like thus:&amp;lt;br&amp;gt;&lt;br /&gt;
 :clam=yes,spam=yes,spam_hits=9.5,spam_passthru=yes,attach=.vbs:.lnk:.scr:.wsh:.hta:.pif&lt;br /&gt;
 This tells simscan for all domains to scan with ClamAV, Spamassassin, filter attachments, queueing all mail after filtering&amp;lt;br&amp;gt;&lt;br /&gt;
 Consider the following format:&amp;lt;br&amp;gt;&lt;br /&gt;
 domain.tld:dspam=yes,rspam=yes,clam=yes,spam=yes,spam_passthru=yes,...&lt;br /&gt;
 This tells simscan for domain.tld to scan with Dspam, Rspam, ClamAV, Spamassassin,...&amp;lt;br&amp;gt;&lt;br /&gt;
 Upon edit of simcontrol the file must be put into proper format for use, run&lt;br /&gt;
 # qmailctl cdb&lt;br /&gt;
&lt;br /&gt;
 Note: simscan automatically runs dspam client (/usr/bin/dspamc). So the dspam server must be running. &lt;br /&gt;
       In order to run dspam (/usr/bin/dspam) set the environment variable DSPAM_BIN in either  &lt;br /&gt;
       /etc/tcprules.d/tcp.smtp or in the smtp run script.&lt;br /&gt;
&lt;br /&gt;
== Ramdisk ==&lt;br /&gt;
&lt;br /&gt;
 Use htop or other program to determine available memory for ramdisk (size=)&lt;br /&gt;
  # clamgid=$(test -z &amp;quot;$(cat /etc/passwd | grep ^clamav)&amp;quot; &amp;amp;&amp;amp; id -g clamscan 2&amp;gt;/dev/null || id -g clamav 2&amp;gt;/dev/null) &amp;amp;&amp;amp; echo $clamgid&lt;br /&gt;
  # qmailctl stop&lt;br /&gt;
  # mount -t tmpfs -o size=1024m,nodev,noexec,noatime,uid=$clamgid,gid=0,mode=0750 myramdisk /var/qmail/simscan&lt;br /&gt;
  # ls -ld /var/qmail/simscan&lt;br /&gt;
     drwxr-x--- 2 clamscan root 6 Aug 17 13:28 /var/qmail/simscan&lt;br /&gt;
  # qmailctl start&lt;br /&gt;
  # df -h /var/qmail/simscan&lt;br /&gt;
     Filesystem      Size  Used Avail Use% Mounted on&lt;br /&gt;
     myramdisk       1.0G     0  1.0G   0% /var/qmail/simscan&lt;br /&gt;
  # cp /etc/fstab /etc/fstab.bak&lt;br /&gt;
  # echo &amp;quot;myramdisk /var/qmail/simscan tmpfs size=1024m,nodev,noexec,noatime,uid=$clamgid,gid=0,mode=0750 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
  Make sure /etc/fstab file is okay before a reboot&lt;br /&gt;
  # cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
== Filtering ==&lt;br /&gt;
&lt;br /&gt;
 FEDORAREPO=&lt;br /&gt;
 Install Dspam, Rspam, SA userprefs&lt;br /&gt;
&lt;br /&gt;
 # Begin Fedora Install CentOS 8 ***** ONLY *****&lt;br /&gt;
 rel=`grep &amp;quot;release 8&amp;quot; /etc/*-release`&lt;br /&gt;
 if [[ ! -z $rel ]]&lt;br /&gt;
 then&lt;br /&gt;
  rel=8&lt;br /&gt;
  FEDORAREPO=--enablerepo=fedora&lt;br /&gt;
  sites=( https://d2lzkl7pfhq30w.cloudfront.net/pub/archive/fedora/linux/releases/28/Everything/x86_64/os/ &lt;br /&gt;
  http://mirror.math.princeton.edu/pub/fedora-archive/fedora/linux/releases/28/Everything/x86_64/os/ &lt;br /&gt;
  http://pubmirror1.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/ &lt;br /&gt;
  https://pubmirror2.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/ &lt;br /&gt;
  http://mirrors.kernel.org/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/ &lt;br /&gt;
  https://dl.fedoraproject.org/pub/archive/fedora/linux/releases/28/Everything/x86_64/os/ )&lt;br /&gt;
  printf &#039;%s\n%s\n%s\n%s\n%s\n%s\n&#039; &#039;[fedora]&#039; &#039;name=Fedora 28&#039; &#039;mirrorlist=file:///etc/yum.repos.d/fedoramirrors&#039; \&lt;br /&gt;
         &#039;enabled=0&#039; &#039;gpgcheck=0&#039; &#039;priority=100&#039; &amp;gt; /etc/yum.repos.d/fedora28.repo&lt;br /&gt;
  printf &#039;%s\n%s\n%s\n%s\n%s\n%s\n&#039; &amp;quot;${sites[0]}&amp;quot; &amp;quot;${sites[1]}&amp;quot; &amp;quot;${sites[2]}&amp;quot; &amp;quot;{$sites[3]}&amp;quot; &amp;quot;${sites[4]}&amp;quot; &amp;quot;${sites[5]}&amp;quot; \&lt;br /&gt;
        &amp;gt; /etc/yum.repos.d/fedoramirrors&lt;br /&gt;
 else&lt;br /&gt;
    rel=7&lt;br /&gt;
 fi&lt;br /&gt;
 # End Fedora Install CentOS 8 ***** ONLY *****&lt;br /&gt;
&lt;br /&gt;
 # Begin DSpam DB Install, Skip if already installed&lt;br /&gt;
 wget https://raw.githubusercontent.com/qmtoaster/dspam/master/dspamdb.sql&lt;br /&gt;
 if [ &amp;quot;$?&amp;quot; != &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
   echo &amp;quot;Error downloading dspam db: ($?), exiting...&amp;quot;&lt;br /&gt;
   exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 MYSQLPW=&lt;br /&gt;
 # Get DB password for administrator and check validity.&lt;br /&gt;
 if [ -z &amp;quot;$MYSQLPW&amp;quot; ]; then&lt;br /&gt;
    read -s -p &amp;quot;Enter MySQL/MariaDB admin password to create dspam database: &amp;quot; MYSQLPW&lt;br /&gt;
 fi&lt;br /&gt;
 credfile=~/sql.cnf&lt;br /&gt;
 echo -e &amp;quot;[client]\nuser=root\npassword=&#039;$MYSQLPW&#039;\nhost=localhost&amp;quot; &amp;gt; $credfile&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile status &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 if [ &amp;quot;$?&amp;quot; != &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
   echo &amp;quot;Bad MySQL/MariaDB administrator password or MySQL/MariaDB is not running. Exiting...&amp;quot;&lt;br /&gt;
   exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 echo &amp;quot;&amp;quot;&lt;br /&gt;
 echo &amp;quot;Dropping Dspam database if it exists already...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;use dspam&amp;quot; &amp;amp;&amp;gt; /dev/null&lt;br /&gt;
 [ &amp;quot;$?&amp;quot; = &amp;quot;0&amp;quot; ] &amp;amp;&amp;amp; mysqldump --defaults-extra-file=$credfile dspam &amp;gt; dspam.sql \&lt;br /&gt;
               &amp;amp;&amp;amp; mysql --defaults-extra-file=$credfile -e &amp;quot;drop database dspam&amp;quot; \&lt;br /&gt;
               &amp;amp;&amp;amp; echo &amp;quot;dspam db saved to dspam.sql and dropped...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # Create dspam with correct permissions&lt;br /&gt;
 echo &amp;quot;Creating Dspam database...&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile create dspam&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 echo &amp;quot;Adding dspam users and privileges...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;CREATE USER dspam@localhost IDENTIFIED BY &#039;p4ssw3rd&#039;&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;GRANT ALL PRIVILEGES ON dspam.* TO dspam@localhost&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 echo &amp;quot;Done with dspam database...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile dspam &amp;lt; dspamdb.sql&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 # End DSpam DB install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # Rspam Installation:&lt;br /&gt;
 wget https://rspamd.com/rpm-stable/centos-$rel/rspamd.repo -O /etc/yum.repos.d/rspamd.repo&lt;br /&gt;
&lt;br /&gt;
 dnf $FEDORAREPO --enablerepo=qmt-devel install dspam dspam-libs dspam-client dspam-mysql dspam-web rspamd&lt;br /&gt;
 systemctl enable --now dspam&lt;br /&gt;
 systemctl status dspam&lt;br /&gt;
 systemctl enable --now rspamd&lt;br /&gt;
 systemctl status rspamd&lt;br /&gt;
&lt;br /&gt;
 # Update Simscan&lt;br /&gt;
 dnf --enablerepo=qmt-devel update simscan&lt;br /&gt;
&lt;br /&gt;
 # Up qmail limits&lt;br /&gt;
 sed -i &#039;s/softlimit -m.*\\/softlimit -m 256000000 \\/&#039; /var/qmail/supervise/smtp/run&lt;br /&gt;
 qmailctl stop&lt;br /&gt;
 qmailctl start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # SA user prefs&lt;br /&gt;
&lt;br /&gt;
 # Create SA DB and load table into MySQL&lt;br /&gt;
 cat &amp;gt;&amp;gt; ./sadb.sql &amp;lt;&amp;lt; EOF&lt;br /&gt;
 CREATE TABLE userpref (&lt;br /&gt;
  username varchar(100) NOT NULL default &#039;&#039;,&lt;br /&gt;
  preference varchar(50) NOT NULL default &#039;&#039;,&lt;br /&gt;
  value varchar(255) NOT NULL default &#039;&#039;,&lt;br /&gt;
  prefid int(11) NOT NULL auto_increment,&lt;br /&gt;
  ts timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),&lt;br /&gt;
  PRIMARY KEY  (prefid),&lt;br /&gt;
  KEY username (username)&lt;br /&gt;
 ) ENGINE=InnoDB;&lt;br /&gt;
 EOF&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile create spamassassin&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;CREATE USER spamassassin@localhost IDENTIFIED BY &#039;p4ssw3rd&#039;&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;GRANT ALL PRIVILEGES ON spamassassin.* TO spamassassin@localhost&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 mysql --defaults-extra-file=$credfile spamassassin &amp;lt; sadb.sql&lt;br /&gt;
&lt;br /&gt;
 # Read SA SQL DB&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/mail/spamassassin/sql.cf &amp;lt;&amp;lt; EOF&lt;br /&gt;
 user_scores_dsn                  DBI:mysql:spamassassin:localhost:3306&lt;br /&gt;
 user_scores_sql_password         p4ssw3rd&lt;br /&gt;
 user_scores_sql_username         spamassassin&lt;br /&gt;
 user_scores_sql_custom_query     SELECT preference, value FROM _TABLE_ WHERE username = _USERNAME_ OR username = &#039;$GLOBAL&#039; OR username = &lt;br /&gt;
 CONCAT(&#039;%&#039;,_DOMAIN_) ORDER BY username ASC&lt;br /&gt;
 EOF&lt;br /&gt;
 echo &amp;quot;include sql.cf&amp;quot; &amp;gt;&amp;gt; /etc/mail/spamassassin/local.cf&lt;br /&gt;
&lt;br /&gt;
 # Add Per User Settings in SA SQL DB (Yours may differ)&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;\$GLOBAL&#039;,&#039;required_hits&#039;,&#039;5.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;user@dom.com&#039;,&#039;required_hits&#039;,&#039;7.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;globalspam&#039;,&#039;required_hits&#039;,&#039;5.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;select * from userpref&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
&lt;br /&gt;
 # Tell SA Daemon To Use SQL DB&lt;br /&gt;
 sed -i &#039;s/SPAMDOPTIONS=&amp;quot;.*&amp;quot;/SPAMDOPTIONS=&amp;quot;--create-prefs -m10 -q -x -u clamscan&amp;quot;/&#039; /etc/sysconfig/spamassassin&lt;br /&gt;
&lt;br /&gt;
 # Bayesian Filtering&lt;br /&gt;
 mkdir /etc/mail/spamassassin/.spamassassin&lt;br /&gt;
 chown -R clamscan:clamscan /etc/mail/spamassassin/.spamassassin&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/mail/spamassassin/bayes.cf &amp;lt;&amp;lt; EOF&lt;br /&gt;
 use_bayes 1&lt;br /&gt;
 use_bayes_rules 1&lt;br /&gt;
 bayes_auto_learn 1&lt;br /&gt;
 bayes_path /etc/mail/spamassassin/.spamassassin/bayes&lt;br /&gt;
 bayes_auto_learn_threshold_spam 6.0&lt;br /&gt;
 bayes_file_mode 0775&lt;br /&gt;
 EOF&lt;br /&gt;
 echo &amp;quot;include bayes.cf&amp;quot; &amp;gt;&amp;gt; /etc/mail/spamassassin/local.cf&lt;br /&gt;
 systemctl restart spamassassin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # Tell simscan, append to simcontrol, reload cdb&lt;br /&gt;
 dspam=yes,rspam=yes,regex&lt;br /&gt;
 optional: dspamuser=globalspam (Otherwise the first envelope &#039;rcpt to&#039; address is used)&lt;br /&gt;
 optional: spamuser=globalspam (Add to userprefs table)&lt;br /&gt;
 optional: remove spam_hits=* (Otherwise userprefs will not be used)&lt;br /&gt;
 qmailctl cdb&lt;br /&gt;
&lt;br /&gt;
 # This is my configuration:&lt;br /&gt;
 :clam=yes,spam=yes,rspam=yes,dspam=yes,spam_passthru=yes,attach=.exe:.pif:.scr&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Simscan&amp;diff=1608</id>
		<title>Simscan</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Simscan&amp;diff=1608"/>
		<updated>2025-08-21T20:05:58Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: /* Control */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Configuration#Simscan|Back]]&amp;lt;br&amp;gt;&lt;br /&gt;
== Scanning ==&lt;br /&gt;
&lt;br /&gt;
 In /etc/tcprules.d/tcp.smtp set environment variable QMAILQUEUE to simscan binary &lt;br /&gt;
   ...,QMAILQUEUE=&amp;quot;/var/qmail/bin/simscan&amp;quot;,...&lt;br /&gt;
 Rebuild tcp.smtp&lt;br /&gt;
 # qmailctl cdb&lt;br /&gt;
&lt;br /&gt;
== Control ==&lt;br /&gt;
&lt;br /&gt;
 Simscan&#039;s control file is /var/qmail/control/simcontrol&lt;br /&gt;
 It&#039;s format looks like thus:&amp;lt;br&amp;gt;&lt;br /&gt;
 :clam=yes,spam=yes,spam_hits=9.5,spam_passthru=yes,attach=.vbs:.lnk:.scr:.wsh:.hta:.pif&lt;br /&gt;
 This tells simscan for all domains to scan with ClamAV, Spamassassin, filter attachments, queueing all mail after filtering&amp;lt;br&amp;gt;&lt;br /&gt;
 Consider the following format:&amp;lt;br&amp;gt;&lt;br /&gt;
 domain.tld:dspam=yes,rspam=yes,clam=yes,spam=yes,spam_passthru=yes,...&lt;br /&gt;
 This tells simscan for domain.tld to scan with Dspam, Rspam, ClamAV, Spamassassin,...&amp;lt;br&amp;gt;&lt;br /&gt;
 Upon edit of simcontrol the file must be put into proper format for use, run&lt;br /&gt;
 # qmailctl cdb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: simscan automatically runs dspam client (/usr/bin/dspamc). So the dspam server must be running. &lt;br /&gt;
      In order to run dspam (/usr/bin/dspam) set the environment variable DSPAM_BIN in either /etc/tcprules.d/tcp.smtp&lt;br /&gt;
      or in the smtp run script.&lt;br /&gt;
&lt;br /&gt;
== Ramdisk ==&lt;br /&gt;
&lt;br /&gt;
 Use htop or other program to determine available memory for ramdisk (size=)&lt;br /&gt;
  # clamgid=$(test -z &amp;quot;$(cat /etc/passwd | grep ^clamav)&amp;quot; &amp;amp;&amp;amp; id -g clamscan 2&amp;gt;/dev/null || id -g clamav 2&amp;gt;/dev/null) &amp;amp;&amp;amp; echo $clamgid&lt;br /&gt;
  # qmailctl stop&lt;br /&gt;
  # mount -t tmpfs -o size=1024m,nodev,noexec,noatime,uid=$clamgid,gid=0,mode=0750 myramdisk /var/qmail/simscan&lt;br /&gt;
  # ls -ld /var/qmail/simscan&lt;br /&gt;
     drwxr-x--- 2 clamscan root 6 Aug 17 13:28 /var/qmail/simscan&lt;br /&gt;
  # qmailctl start&lt;br /&gt;
  # df -h /var/qmail/simscan&lt;br /&gt;
     Filesystem      Size  Used Avail Use% Mounted on&lt;br /&gt;
     myramdisk       1.0G     0  1.0G   0% /var/qmail/simscan&lt;br /&gt;
  # cp /etc/fstab /etc/fstab.bak&lt;br /&gt;
  # echo &amp;quot;myramdisk /var/qmail/simscan tmpfs size=1024m,nodev,noexec,noatime,uid=$clamgid,gid=0,mode=0750 0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
  Make sure /etc/fstab file is okay before a reboot&lt;br /&gt;
  # cat /etc/fstab&lt;br /&gt;
&lt;br /&gt;
== Filtering ==&lt;br /&gt;
&lt;br /&gt;
 FEDORAREPO=&lt;br /&gt;
 Install Dspam, Rspam, SA userprefs&lt;br /&gt;
&lt;br /&gt;
 # Begin Fedora Install CentOS 8 ***** ONLY *****&lt;br /&gt;
 rel=`grep &amp;quot;release 8&amp;quot; /etc/*-release`&lt;br /&gt;
 if [[ ! -z $rel ]]&lt;br /&gt;
 then&lt;br /&gt;
  rel=8&lt;br /&gt;
  FEDORAREPO=--enablerepo=fedora&lt;br /&gt;
  sites=( https://d2lzkl7pfhq30w.cloudfront.net/pub/archive/fedora/linux/releases/28/Everything/x86_64/os/ &lt;br /&gt;
  http://mirror.math.princeton.edu/pub/fedora-archive/fedora/linux/releases/28/Everything/x86_64/os/ &lt;br /&gt;
  http://pubmirror1.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/ &lt;br /&gt;
  https://pubmirror2.math.uh.edu/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/ &lt;br /&gt;
  http://mirrors.kernel.org/fedora-buffet/archive/fedora/linux/releases/28/Everything/x86_64/os/ &lt;br /&gt;
  https://dl.fedoraproject.org/pub/archive/fedora/linux/releases/28/Everything/x86_64/os/ )&lt;br /&gt;
  printf &#039;%s\n%s\n%s\n%s\n%s\n%s\n&#039; &#039;[fedora]&#039; &#039;name=Fedora 28&#039; &#039;mirrorlist=file:///etc/yum.repos.d/fedoramirrors&#039; \&lt;br /&gt;
         &#039;enabled=0&#039; &#039;gpgcheck=0&#039; &#039;priority=100&#039; &amp;gt; /etc/yum.repos.d/fedora28.repo&lt;br /&gt;
  printf &#039;%s\n%s\n%s\n%s\n%s\n%s\n&#039; &amp;quot;${sites[0]}&amp;quot; &amp;quot;${sites[1]}&amp;quot; &amp;quot;${sites[2]}&amp;quot; &amp;quot;{$sites[3]}&amp;quot; &amp;quot;${sites[4]}&amp;quot; &amp;quot;${sites[5]}&amp;quot; \&lt;br /&gt;
        &amp;gt; /etc/yum.repos.d/fedoramirrors&lt;br /&gt;
 else&lt;br /&gt;
    rel=7&lt;br /&gt;
 fi&lt;br /&gt;
 # End Fedora Install CentOS 8 ***** ONLY *****&lt;br /&gt;
&lt;br /&gt;
 # Begin DSpam DB Install, Skip if already installed&lt;br /&gt;
 wget https://raw.githubusercontent.com/qmtoaster/dspam/master/dspamdb.sql&lt;br /&gt;
 if [ &amp;quot;$?&amp;quot; != &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
   echo &amp;quot;Error downloading dspam db: ($?), exiting...&amp;quot;&lt;br /&gt;
   exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 MYSQLPW=&lt;br /&gt;
 # Get DB password for administrator and check validity.&lt;br /&gt;
 if [ -z &amp;quot;$MYSQLPW&amp;quot; ]; then&lt;br /&gt;
    read -s -p &amp;quot;Enter MySQL/MariaDB admin password to create dspam database: &amp;quot; MYSQLPW&lt;br /&gt;
 fi&lt;br /&gt;
 credfile=~/sql.cnf&lt;br /&gt;
 echo -e &amp;quot;[client]\nuser=root\npassword=&#039;$MYSQLPW&#039;\nhost=localhost&amp;quot; &amp;gt; $credfile&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile status &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
 if [ &amp;quot;$?&amp;quot; != &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
   echo &amp;quot;Bad MySQL/MariaDB administrator password or MySQL/MariaDB is not running. Exiting...&amp;quot;&lt;br /&gt;
   exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 echo &amp;quot;&amp;quot;&lt;br /&gt;
 echo &amp;quot;Dropping Dspam database if it exists already...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;use dspam&amp;quot; &amp;amp;&amp;gt; /dev/null&lt;br /&gt;
 [ &amp;quot;$?&amp;quot; = &amp;quot;0&amp;quot; ] &amp;amp;&amp;amp; mysqldump --defaults-extra-file=$credfile dspam &amp;gt; dspam.sql \&lt;br /&gt;
               &amp;amp;&amp;amp; mysql --defaults-extra-file=$credfile -e &amp;quot;drop database dspam&amp;quot; \&lt;br /&gt;
               &amp;amp;&amp;amp; echo &amp;quot;dspam db saved to dspam.sql and dropped...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # Create dspam with correct permissions&lt;br /&gt;
 echo &amp;quot;Creating Dspam database...&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile create dspam&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 echo &amp;quot;Adding dspam users and privileges...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;CREATE USER dspam@localhost IDENTIFIED BY &#039;p4ssw3rd&#039;&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;GRANT ALL PRIVILEGES ON dspam.* TO dspam@localhost&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 echo &amp;quot;Done with dspam database...&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile dspam &amp;lt; dspamdb.sql&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 # End DSpam DB install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # Rspam Installation:&lt;br /&gt;
 wget https://rspamd.com/rpm-stable/centos-$rel/rspamd.repo -O /etc/yum.repos.d/rspamd.repo&lt;br /&gt;
&lt;br /&gt;
 dnf $FEDORAREPO --enablerepo=qmt-devel install dspam dspam-libs dspam-client dspam-mysql dspam-web rspamd&lt;br /&gt;
 systemctl enable --now dspam&lt;br /&gt;
 systemctl status dspam&lt;br /&gt;
 systemctl enable --now rspamd&lt;br /&gt;
 systemctl status rspamd&lt;br /&gt;
&lt;br /&gt;
 # Update Simscan&lt;br /&gt;
 dnf --enablerepo=qmt-devel update simscan&lt;br /&gt;
&lt;br /&gt;
 # Up qmail limits&lt;br /&gt;
 sed -i &#039;s/softlimit -m.*\\/softlimit -m 256000000 \\/&#039; /var/qmail/supervise/smtp/run&lt;br /&gt;
 qmailctl stop&lt;br /&gt;
 qmailctl start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # SA user prefs&lt;br /&gt;
&lt;br /&gt;
 # Create SA DB and load table into MySQL&lt;br /&gt;
 cat &amp;gt;&amp;gt; ./sadb.sql &amp;lt;&amp;lt; EOF&lt;br /&gt;
 CREATE TABLE userpref (&lt;br /&gt;
  username varchar(100) NOT NULL default &#039;&#039;,&lt;br /&gt;
  preference varchar(50) NOT NULL default &#039;&#039;,&lt;br /&gt;
  value varchar(255) NOT NULL default &#039;&#039;,&lt;br /&gt;
  prefid int(11) NOT NULL auto_increment,&lt;br /&gt;
  ts timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),&lt;br /&gt;
  PRIMARY KEY  (prefid),&lt;br /&gt;
  KEY username (username)&lt;br /&gt;
 ) ENGINE=InnoDB;&lt;br /&gt;
 EOF&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile create spamassassin&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;CREATE USER spamassassin@localhost IDENTIFIED BY &#039;p4ssw3rd&#039;&amp;quot;&lt;br /&gt;
 mysql --defaults-extra-file=$credfile -e &amp;quot;GRANT ALL PRIVILEGES ON spamassassin.* TO spamassassin@localhost&amp;quot;&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile reload&lt;br /&gt;
 mysqladmin --defaults-extra-file=$credfile refresh&lt;br /&gt;
 mysql --defaults-extra-file=$credfile spamassassin &amp;lt; sadb.sql&lt;br /&gt;
&lt;br /&gt;
 # Read SA SQL DB&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/mail/spamassassin/sql.cf &amp;lt;&amp;lt; EOF&lt;br /&gt;
 user_scores_dsn                  DBI:mysql:spamassassin:localhost:3306&lt;br /&gt;
 user_scores_sql_password         p4ssw3rd&lt;br /&gt;
 user_scores_sql_username         spamassassin&lt;br /&gt;
 user_scores_sql_custom_query     SELECT preference, value FROM _TABLE_ WHERE username = _USERNAME_ OR username = &#039;$GLOBAL&#039; OR username = &lt;br /&gt;
 CONCAT(&#039;%&#039;,_DOMAIN_) ORDER BY username ASC&lt;br /&gt;
 EOF&lt;br /&gt;
 echo &amp;quot;include sql.cf&amp;quot; &amp;gt;&amp;gt; /etc/mail/spamassassin/local.cf&lt;br /&gt;
&lt;br /&gt;
 # Add Per User Settings in SA SQL DB (Yours may differ)&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;\$GLOBAL&#039;,&#039;required_hits&#039;,&#039;5.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;user@dom.com&#039;,&#039;required_hits&#039;,&#039;7.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;INSERT INTO userpref (username,preference,value) VALUES (&#039;globalspam&#039;,&#039;required_hits&#039;,&#039;5.0&#039;);&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
 echo &amp;quot;select * from userpref&amp;quot; | mysql -u root -p spamassassin&lt;br /&gt;
&lt;br /&gt;
 # Tell SA Daemon To Use SQL DB&lt;br /&gt;
 sed -i &#039;s/SPAMDOPTIONS=&amp;quot;.*&amp;quot;/SPAMDOPTIONS=&amp;quot;--create-prefs -m10 -q -x -u clamscan&amp;quot;/&#039; /etc/sysconfig/spamassassin&lt;br /&gt;
&lt;br /&gt;
 # Bayesian Filtering&lt;br /&gt;
 mkdir /etc/mail/spamassassin/.spamassassin&lt;br /&gt;
 chown -R clamscan:clamscan /etc/mail/spamassassin/.spamassassin&lt;br /&gt;
 cat &amp;gt;&amp;gt; /etc/mail/spamassassin/bayes.cf &amp;lt;&amp;lt; EOF&lt;br /&gt;
 use_bayes 1&lt;br /&gt;
 use_bayes_rules 1&lt;br /&gt;
 bayes_auto_learn 1&lt;br /&gt;
 bayes_path /etc/mail/spamassassin/.spamassassin/bayes&lt;br /&gt;
 bayes_auto_learn_threshold_spam 6.0&lt;br /&gt;
 bayes_file_mode 0775&lt;br /&gt;
 EOF&lt;br /&gt;
 echo &amp;quot;include bayes.cf&amp;quot; &amp;gt;&amp;gt; /etc/mail/spamassassin/local.cf&lt;br /&gt;
 systemctl restart spamassassin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # Tell simscan, append to simcontrol, reload cdb&lt;br /&gt;
 dspam=yes,rspam=yes,regex&lt;br /&gt;
 optional: dspamuser=globalspam (Otherwise the first envelope &#039;rcpt to&#039; address is used)&lt;br /&gt;
 optional: spamuser=globalspam (Add to userprefs table)&lt;br /&gt;
 optional: remove spam_hits=* (Otherwise userprefs will not be used)&lt;br /&gt;
 qmailctl cdb&lt;br /&gt;
&lt;br /&gt;
 # This is my configuration:&lt;br /&gt;
 :clam=yes,spam=yes,rspam=yes,dspam=yes,spam_passthru=yes,attach=.exe:.pif:.scr&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Rocky,_Alma,_Springdale_10_QT_Install&amp;diff=1607</id>
		<title>Rocky, Alma, Springdale 10 QT Install</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Rocky,_Alma,_Springdale_10_QT_Install&amp;diff=1607"/>
		<updated>2025-08-21T16:35:32Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page#RHEL_10_&amp;amp;_Derivatives|Back]]&amp;lt;br&amp;gt;&lt;br /&gt;
=Enterprise Linux 10 Minimal Install= &lt;br /&gt;
==QMT Install (&#039;Many-Domain&#039;)== &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; curl -o /usr/local/bin/qt_install https://raw.githubusercontent.com/qmtoaster/scripts/master/qt_install_el10.sh&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; chmod 755 /usr/local/bin/qt_install&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; qt_install&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; ...installing... &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; toaststat&amp;lt;br&amp;gt;&lt;br /&gt;
 Status of toaster services&lt;br /&gt;
 send: up (pid 1323) 1517 seconds&lt;br /&gt;
 smtp: up (pid 1324) 1517 seconds&lt;br /&gt;
 submission: up (pid 1325) 1517 seconds&lt;br /&gt;
 send/log: up (pid 1316) 1517 seconds&lt;br /&gt;
 smtp/log: up (pid 1311) 1517 seconds&lt;br /&gt;
 submission/log: up (pid 1314) 1517 seconds&amp;lt;br&amp;gt;&lt;br /&gt;
 systemd service:               clamd@scan:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:         clamav-freshclam:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:             spamassassin:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  dovecot:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  mariadb:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    httpd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    named:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                     ntpd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                     sshd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  network:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    crond:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    acpid:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                      atd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                   autofs:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                   smartd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:               irqbalance:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;] (Multiple processors only)&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; [https://raw.githubusercontent.com/qmtoaster/scripts/master/conntest conntest]&lt;br /&gt;
 Enter a valid remote email account to which QMT will send mail: &amp;lt;email address&amp;gt;&lt;br /&gt;
 IMAPS: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
 Submission: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
 SMTPS: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [http://wiki.qmailtoaster.org/index.php?title=Simscan Scanners]&lt;br /&gt;
 [http://wiki.qmailtoaster.org/index.php?title=Alias_Domains Many Domain Install (Alias Domain)]&lt;br /&gt;
 Qmail-1.03-3.3.12 (OpenSSL3)&lt;br /&gt;
 [https://github.com/qmtoaster/patches/blob/master/EL9/README.md Patches] applied&lt;br /&gt;
&lt;br /&gt;
== Install certificate ==&lt;br /&gt;
  [[Certificate]] *Note: The certificate must be 2048 bits or more&lt;br /&gt;
== Test certificate ==&lt;br /&gt;
  # curl --verbose smtps://mail.domain.tld&lt;br /&gt;
  # curl --verbose imaps://mail.domain.tld&lt;br /&gt;
or&lt;br /&gt;
  # openssl s_client mail.domain.tld:465&lt;br /&gt;
  # openssl s_client mail.domain.tld:993 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Server certificate:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  subject: CN=mail.domain.tld&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  start date: Jul 30 09:16:16 2024 GMT&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  expire date: Oct 28 09:16:15 2024 GMT&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  subjectAltName: host &amp;quot;mail.domain.tld&amp;quot; matched cert&#039;s &amp;quot;mail.domain.tld&amp;quot;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  issuer: C=US; O=Let&#039;s Encrypt; CN=R11&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  SSL certificate verify ok.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the following error is encountered when testing the new certificate the certificate is most likely less than 2048 bits&lt;br /&gt;
&lt;br /&gt;
 806B7387577F0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:ssl/record/ssl3_record.c:354&lt;br /&gt;
&lt;br /&gt;
Usually Let&#039;s Encrypt certificates are at least 2048 bits, but encountering 256 bits keys is possible. Correct by specifying the number of bits:&lt;br /&gt;
&lt;br /&gt;
 certbot renew --cert-name -d domain.tld -d mail.domain.tld --apache &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;--rsa-key-size 2048 --key-type rsa&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Rocky,_Alma,_Springdale_10_QT_Install&amp;diff=1606</id>
		<title>Rocky, Alma, Springdale 10 QT Install</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Rocky,_Alma,_Springdale_10_QT_Install&amp;diff=1606"/>
		<updated>2025-08-21T16:34:40Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: Created page with &amp;quot;Back&amp;lt;br&amp;gt; =Enterprise Linux 10 Minimal Install=  ==QMT Install (&amp;#039;Many-Domain&amp;#039;)==   &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; curl -o /usr/local/bin/qt_install https://raw.githubusercontent.com/qmtoaster/scripts/master/qt_install_el10.sh  &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; chmod 755 /usr/local/bin/qt_install  &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; qt_install     &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; ...installing... &amp;lt;/span&amp;gt;  &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; toaststat&amp;lt;br&amp;gt;  Status of toaster services  send: up (pid 1323) 15...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page#RHEL_10_&amp;amp;_Derivatives|Back]]&amp;lt;br&amp;gt;&lt;br /&gt;
=Enterprise Linux 10 Minimal Install= &lt;br /&gt;
==QMT Install (&#039;Many-Domain&#039;)== &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; curl -o /usr/local/bin/qt_install https://raw.githubusercontent.com/qmtoaster/scripts/master/qt_install_el10.sh&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; chmod 755 /usr/local/bin/qt_install&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; qt_install&lt;br /&gt;
    &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt; ...installing... &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; toaststat&amp;lt;br&amp;gt;&lt;br /&gt;
 Status of toaster services&lt;br /&gt;
 send: up (pid 1323) 1517 seconds&lt;br /&gt;
 smtp: up (pid 1324) 1517 seconds&lt;br /&gt;
 submission: up (pid 1325) 1517 seconds&lt;br /&gt;
 send/log: up (pid 1316) 1517 seconds&lt;br /&gt;
 smtp/log: up (pid 1311) 1517 seconds&lt;br /&gt;
 submission/log: up (pid 1314) 1517 seconds&amp;lt;br&amp;gt;&lt;br /&gt;
 systemd service:               clamd@scan:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:         clamav-freshclam:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:             spamassassin:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  dovecot:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  mariadb:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    httpd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    named:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                     ntpd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                     sshd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                  network:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    crond:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                    acpid:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                      atd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                   autofs:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:                   smartd:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;]&lt;br /&gt;
 systemd service:               irqbalance:       [&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt; OK &amp;lt;/span&amp;gt;] (Multiple processors only)&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; [https://raw.githubusercontent.com/qmtoaster/scripts/master/conntest conntest]&lt;br /&gt;
 Enter a valid remote email account to which QMT will send mail: &amp;lt;email address&amp;gt;&lt;br /&gt;
 IMAPS: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
 Submission: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
 SMTPS: postmaster@domain.tld --&amp;gt; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;success&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [http://wiki.qmailtoaster.org/index.php?title=Simscan Scanners]&lt;br /&gt;
 [http://wiki.qmailtoaster.org/index.php?title=Alias_Domains Many Domain Install (Alias Domain)]&lt;br /&gt;
 Qmail-1.03-3.3.11 (OpenSSL3)&lt;br /&gt;
 [https://github.com/qmtoaster/patches/blob/master/EL9/README.md Patches] applied&lt;br /&gt;
&lt;br /&gt;
== Install certificate ==&lt;br /&gt;
  [[Certificate]] *Note: The certificate must be 2048 bits or more&lt;br /&gt;
== Test certificate ==&lt;br /&gt;
  # curl --verbose smtps://mail.domain.tld&lt;br /&gt;
  # curl --verbose imaps://mail.domain.tld&lt;br /&gt;
or&lt;br /&gt;
  # openssl s_client mail.domain.tld:465&lt;br /&gt;
  # openssl s_client mail.domain.tld:993 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; Server certificate:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  subject: CN=mail.domain.tld&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  start date: Jul 30 09:16:16 2024 GMT&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  expire date: Oct 28 09:16:15 2024 GMT&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  subjectAltName: host &amp;quot;mail.domain.tld&amp;quot; matched cert&#039;s &amp;quot;mail.domain.tld&amp;quot;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  issuer: C=US; O=Let&#039;s Encrypt; CN=R11&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  SSL certificate verify ok.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the following error is encountered when testing the new certificate the certificate is most likely less than 2048 bits&lt;br /&gt;
&lt;br /&gt;
 806B7387577F0000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:ssl/record/ssl3_record.c:354&lt;br /&gt;
&lt;br /&gt;
Usually Let&#039;s Encrypt certificates are at least 2048 bits, but encountering 256 bits keys is possible. Correct by specifying the number of bits:&lt;br /&gt;
&lt;br /&gt;
 certbot renew --cert-name -d domain.tld -d mail.domain.tld --apache &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;--rsa-key-size 2048 --key-type rsa&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
	<entry>
		<id>http://wiki.qmailtoaster.org:80/index.php?title=Main_Page&amp;diff=1605</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.qmailtoaster.org:80/index.php?title=Main_Page&amp;diff=1605"/>
		<updated>2025-08-21T16:32:29Z</updated>

		<summary type="html">&lt;p&gt;Ebroch: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Welcome to Qmailtoaster&#039;s Wiki page.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
=== Introduction ===&lt;br /&gt;
&lt;br /&gt;
Welcome to the Qmailtoaster wiki. Qmailtoaster is designed to be very stable and easy enough to install that even an inexperienced Linux user can install, operate, and maintain a full blown Qmail MTA. &lt;br /&gt;
&lt;br /&gt;
Everyone is encouraged to find ways to improve Qmailtoaster and to pass their knowledge on to others via the wiki and the [mailto:qmailtoaster-list-subscribe@qmailtoaster.com email list]. &lt;br /&gt;
&lt;br /&gt;
This wiki is maintained by Eric Broch and the rest of the Qmailtoaster community as a means of providing a centralized location for assisting all Qmailtoaster users.&lt;br /&gt;
&lt;br /&gt;
=== History ===&lt;br /&gt;
&lt;br /&gt;
QmaitToaster was conceived by Miguel Beccari in June 2002. At the time, Miguel was an IT for Clikka.Com in Udine Italy. Miguel&#039;s goals were to provide a very stable rpm based Qmail MTA, and to build a &amp;quot;Qmailtoaster&amp;quot; community of users to support and develop the Qmailtoaster project. &lt;br /&gt;
&lt;br /&gt;
=== Subsequent QmailToaster Maintainers ===&lt;br /&gt;
&lt;br /&gt;
2003-2007, Nick Hemmesch&lt;br /&gt;
&lt;br /&gt;
2006-2007, Erik Espinoza&lt;br /&gt;
&lt;br /&gt;
2007-2011, Jake Vickers&lt;br /&gt;
&lt;br /&gt;
2011-2014, Eric Shubert&lt;br /&gt;
&lt;br /&gt;
2014-Present, Eric Broch&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For details on the evolution of the various QMailtoaster packages, see the [[Change Logs]].&lt;br /&gt;
&lt;br /&gt;
=== Credits ===&lt;br /&gt;
&#039;&#039;&#039;QMAIL&#039;&#039;&#039; D. J. Bernstein (http://cr.yp.to/qmail.html)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DAEMONTOOLS&#039;&#039;&#039; D. J. Bernstein (http://cr.yp.to/daemontools.html)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;UCSPI-TCP&#039;&#039;&#039; D. J. Bernstein (http://cr.yp.to/ucspi-tcp.html)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;EZMLM&#039;&#039;&#039; (http://www.ezmlm.org)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VPOPMAIL&#039;&#039;&#039; (http://www.inter7.com/vpopmail)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QMAILADMIN&#039;&#039;&#039; (http://www.inter7.com/qmailadmin)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;VQADMIN&#039;&#039;&#039; (http://www.inter7.com/vqadmin)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;QMAILMRTG&#039;&#039;&#039; (http://www.inter7.com/qmailmrtg7)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DOVECOT&#039;&#039;&#039; (https://www.dovecot.org/)&lt;br /&gt;
&lt;br /&gt;
== [[FAQs]] ==&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
&lt;br /&gt;
* RPM packages for RHEL 7/8/9 &amp;amp; derivatives (Rocky, Alma, &amp;amp; Springdale)&lt;br /&gt;
* DKIM, SPF and SRS&lt;br /&gt;
* Integrated ClamAV, DSPAM, Rspam, Spamassassin, ClamAV.&lt;br /&gt;
* Warlord virus and worm loader realtime MIME signature scanning&lt;br /&gt;
* CHKUSER 2.0 functions for qmail-smtpd&lt;br /&gt;
* Qmail-Tap provides email archive capability&lt;br /&gt;
* Virtual Domains and Virtual Users using MySQL&lt;br /&gt;
* Autoresponder for vacation/away from office messages&lt;br /&gt;
* Integrated Mailing List (ezmlm)&lt;br /&gt;
* Web-based email: Squirrelmail, Roundcube, Afterlogic, Rainloop.&lt;br /&gt;
* Web-based admin: QmailAdmin&lt;br /&gt;
* Dovecot: POP3, POP3-SSL, IMAP and IMAP-SSL&lt;br /&gt;
* Submission port (587) allows roaming users to skip RBL checks and port 25 blocks&lt;br /&gt;
* SMTPS port (465)&lt;br /&gt;
* eMPF patch for advanced policy control over email&lt;br /&gt;
&lt;br /&gt;
=== Additional Resources ===&lt;br /&gt;
&lt;br /&gt;
You have found the wiki, congratulations. There is a lot of good information here.&lt;br /&gt;
&lt;br /&gt;
There is a [http://www.mail-archive.com/qmailtoaster-list@qmailtoaster.com/info.html mailing list] which is a good source for help.&lt;br /&gt;
&lt;br /&gt;
The [http://www.mail-archive.com/qmailtoaster-list@qmailtoaster.com/info.html mailing list] has a [http://www.mail-archive.com/qmailtoaster-list@qmailtoaster.com/ searchable archive], and it is available for searching and news access as well from [http://dir.gmane.org/gmane.mail.qmail.toaster gmane.org]. Many questions have been answered in the archive, so please do some searching before asking a question on the list.&lt;br /&gt;
&lt;br /&gt;
There is the chat room #qmailtoaster at irc.freenode.net. You might find help there.&lt;br /&gt;
&lt;br /&gt;
There is a good graphic titled [http://www.nrg4u.com/ THE BIG Qmail PICTURE] available in several formats that explains how qmail works.  The author  does not indicate that is free to distribute, however it is free for personal use.  Get a copy for yourself, as it is a handy reference.&lt;br /&gt;
&lt;br /&gt;
Also grab a copy of Sills&#039; [http://www.lifewithqmail.org/ Life with qmail] in whatever format you choose.  It too is a valuable reference.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== RHEL 7 &amp;amp; Derivatives ===&lt;br /&gt;
 [[CentOS 7 QT Install]]&lt;br /&gt;
&#039;&#039;&#039;Patch&#039;&#039;&#039; [https://github.com/qmtoaster/patches/blob/master/cos7/README.md Current] [https://github.com/qmtoaster/patches/tree/master/cos7/3.3.11 Current MD OpenSSL111]&lt;br /&gt;
&lt;br /&gt;
=== RHEL 8 &amp;amp; Derivatives ===&lt;br /&gt;
 [[Rocky, Alma, Springdale 8 QT Install]]&lt;br /&gt;
&#039;&#039;&#039;Patch&#039;&#039;&#039; [https://github.com/qmtoaster/patches/blob/master/EL9/README.md Testing]&lt;br /&gt;
&lt;br /&gt;
=== RHEL 9 &amp;amp; Derivatives ===&lt;br /&gt;
 [[Rocky, Alma, Springdale 9 QT Install]]&lt;br /&gt;
&#039;&#039;&#039;Patch&#039;&#039;&#039; [https://github.com/qmtoaster/patches/tree/master/EL9 Testing]&lt;br /&gt;
&lt;br /&gt;
=== RHEL 10 &amp;amp; Derivatives ===&lt;br /&gt;
 [[Rocky, Alma, Springdale 10 QT Install]]&lt;br /&gt;
&#039;&#039;&#039;Patch&#039;&#039;&#039; [https://github.com/qmtoaster/patches/tree/master/EL9 Testing] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[Configuration]] ==&lt;br /&gt;
&lt;br /&gt;
== [[http://qtp.qmailtoaster.com/ QmailToaster-Plus]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Migrate]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Backup]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Troubleshooting]] ==&lt;br /&gt;
&lt;br /&gt;
== [[User Tips &amp;amp; Tricks]] ==&lt;br /&gt;
&lt;br /&gt;
== [[Change Logs]] ==&lt;br /&gt;
&lt;br /&gt;
== [[QMT Wiki]] ==&lt;br /&gt;
&lt;br /&gt;
== Modifications ==&lt;br /&gt;
=== [[Groupware]]===&lt;br /&gt;
=== [[Webmail]]===&lt;br /&gt;
=== [[Calendar]]===&lt;br /&gt;
=== [[ActiveSync (Z-push)]]===&lt;br /&gt;
== [[Wish List]] ==&lt;/div&gt;</summary>
		<author><name>Ebroch</name></author>
	</entry>
</feed>