<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Installation Archives - SurgeMail</title>
	<atom:link href="https://surgemail.com/article-categories/install/feed/" rel="self" type="application/rss+xml" />
	<link>https://surgemail.com/article-categories/install/</link>
	<description>Windows/Linux Mail Server Software</description>
	<lastBuildDate>Wed, 17 Jul 2024 22:54:22 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>

<image>
	<url>https://surgemail.com/wp-content/uploads/2019/11/cropped-robot_80-32x32.png</url>
	<title>Installation Archives - SurgeMail</title>
	<link>https://surgemail.com/article-categories/install/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Z-Push (ActiveSync)</title>
		<link>https://surgemail.com/knowledge-base/z-push-patch/</link>
		
		<dc:creator><![CDATA[chrisp]]></dc:creator>
		<pubDate>Thu, 12 Jan 2023 22:46:06 +0000</pubDate>
				<guid isPermaLink="false">https://surgemail.com/?post_type=ht_kb&#038;p=7828</guid>

					<description><![CDATA[<p>z-push is an ActiveSync clone used to provide push notificiations for some Microsoft Email clients. It should never be used, always choose 'imap' instead, it is much much faster and better and more reliable. Z-Push's implementation of imap is not good, and on large email accounts it is not reliable. It gets into a 'loop'<br /><a class="moretag" href="https://surgemail.com/knowledge-base/z-push-patch/">+ Read More</a></p>
<p>The post <a rel="nofollow" href="https://surgemail.com/knowledge-base/z-push-patch/">Z-Push (ActiveSync)</a> appeared first on <a rel="nofollow" href="https://surgemail.com">SurgeMail</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>z-push is an ActiveSync clone used to provide push notificiations for some Microsoft Email clients.</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained">
<p class="has-vivid-red-color has-text-color"><strong>It should never be used,</strong> always choose 'imap' instead, it is much much faster and better and more reliable.</p>



<p class="has-vivid-red-color has-text-color"> <strong>Z-Push's implementation of imap is not good, and on large email accounts it is not reliable. It gets into a 'loop' state and then bails completely in some situations.  We do NOT support this protocol. Even microsoft don't support activesync anymore <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong>. </p>
</div></div>



<p>If you have no choice, then you should use this patched version which fixes some serious performance issues.  Specifically it's more efficient and has some better defaults. </p>



<p>note: Z-Push is not actively supported, neither is ActiveSync, these are obsolete and should be avoided.</p>



<h2 class="wp-block-heading">What did we fix? (cough improve)</h2>



<ul class="wp-block-list">
<li>Most of these faults relate to 'real' systems, with many folders, each containing thousands of messages of various sizes.  On test systems these issues would not show up. On real systems it was simply broken. </li>



<li>Memory setting added to override random default on the system.</li>



<li>Memory headroom increased so it won't run out of memory when reading a single large message</li>



<li>Setting added to define the max size message that can be safely processed.</li>



<li>Messages above max size are not fetched!</li>



<li>When trying to find the list of existing messages in a folder, the original implementation would scan the headers of every message in the folder. When no headers are needed!  </li>



<li>Built in 'incredibly inefficient' overview imap command replaced with efficient one that just lists flags and uid's. </li>



<li>When updating folders the original implemenation would scan every folder on the system, (and scan the headers of every message in every folder).  And then repeat that step for each block of 100 messages.  Now it remembers which folder it was updating. </li>



<li>Enforced more conservative timeout limits.  This helps reduce the chance of multiple duplicate updates being initiated by an impatient client.  </li>



<li>Actual imap 'idle' command implemented so it can detect new messages in the INBOX efficiently.</li>



<li>While updating once a limit is reached the next update of all folders will continue at the one it was on rather than scanning all other folders 'again' first <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </li>



<li>We added the following php library to handle imap more efficiently:  https://github.com/petewarden/handmadeimap</li>
</ul>



<h2 class="wp-block-heading">How to install over an existing z-push installation</h2>



<p>wget https://github.com/chrispugmire/Z-Push/archive/refs/heads/develop.zip<br>unzip develop.zip<br>cd Z-Push</p>



<p>php install.php</p>



<p></p>



<h1 class="wp-block-heading">How to install this version of z-push from scratch</h1>



<p>mkdir /var/share/z-push<br>mkdir /var/lib/z-push<br>mkdir /var/log/z-push<br>wget https://github.com/chrispugmire/Z-Push/archive/refs/heads/develop.zip<br>unzip develop.zip<br></p>



<p>cd Z-Push<br>php install.php  # this coppies the files to /usr/share/z-push, it doesn't overwrite existing config.php files! </p>



<p># repace www-data with the account that apache runs as! <br>chown -R <strong>www-data</strong> /var/lib/z-push /var/share/z-push /var/log/z-push</p>



<h1 class="wp-block-heading"># apache2 config ubuntu...</h1>



<p>cp Z-Push/config/apache2/z-push.conf /etc/apache2/conf-available<br>cp Z-Push/config/apache2/z-push-autodiscover.conf /etc/apache2/conf-available</p>



<p>a2enconf z-push.conf<br>a2enconf z-push-autodiscover.conf<br>systemctl reload apache2</p>



<p></p>



<h2 class="wp-block-heading">Adjust the config files.</h2>



<pre class="wp-block-preformatted">cd /usr/share/z-push
edit config.php
     # add new settings
     ini_set("memory_limit","256M"); 
     define('MAX_MSG_SIZE',20); //  Units=MB

     # set backend provider inf config.php if not already set correctly...
     define('BACKEND_PROVIDER', 'BackendIMAP');

# set imap settings if not already set correct! 
edit backend/imap/config.php
     define('IMAP_SERVER', 'YOUR.MAIL.SERVER');
 </pre>



<h1 class="wp-block-heading">Surgemail Settings you should check</h1>



<p>This significantly improves performance: </p>



<p><strong>g_imap_status_stored "true"</strong></p>



<p></p>



<h2 class="wp-block-heading">Test APACHE config is working</h2>



<p>https://[your-server-name]/Microsoft-Server-ActiveSync</p>



<h2 class="wp-block-heading">Now configure Outlook to use ActiveSync</h2>



<p>This is hard to do because it's not in the normal outlook account setup, to get to the active sync option you do this:</p>



<p>Control Panel/ search for Mail / choose "Email Accounts" / choose "New" / Manual / Exchange ActiveSync...</p>



<h2 class="wp-block-heading">Now check the logs</h2>



<p>cd /var/log/z-push</p>



<p>tail -1000 z-push.log</p>



<p>tail z-push-error.log</p>



<h1 class="wp-block-heading">Run the monitor to see what z-push is doing</h1>



<p>/usr/share/z-push/z-push-top.php</p>



<h1 class="wp-block-heading">Commands that 'might' unjam a stuck z-push</h1>



<pre class="wp-block-preformatted"># These two seem fairly safe and are a reasonable first thing to try...
/usr/share/z-push/z-push-admin.php -a clearloop

# commands that would reset zpush completely, (not recommended)
/usr/share/z-push/z-push-admin.php -a remove -u user@domain.name

# manually fix states (causes refetch of all messages)
/usr/share/z-push/z-push-admin -a fixstates

# completely WIPE the zpush state folders...
rm -r /var/lib/z-push/*

# If all else fails delete the account from exchange and recreate it! This often gets rid of a whole bunch of errors. </pre>



<p></p>
<p>The post <a rel="nofollow" href="https://surgemail.com/knowledge-base/z-push-patch/">Z-Push (ActiveSync)</a> appeared first on <a rel="nofollow" href="https://surgemail.com">SurgeMail</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Domain defaults</title>
		<link>https://surgemail.com/knowledge-base/domain-defaults/</link>
		
		<dc:creator><![CDATA[chrisp]]></dc:creator>
		<pubDate>Mon, 17 May 2021 21:55:02 +0000</pubDate>
				<guid isPermaLink="false">https://surgemail.com/?post_type=ht_kb&#038;p=4272</guid>

					<description><![CDATA[<p>When you create a new domain the defaults are taken from a config file domain_defaults.txt which must be in the 'web' folder. This file contains only basic settings in the form: &#60;setting_name>&#60;space>&#60;setting_value> e.g. quota_default 100mbssl_require_login true</p>
<p>The post <a rel="nofollow" href="https://surgemail.com/knowledge-base/domain-defaults/">Domain defaults</a> appeared first on <a rel="nofollow" href="https://surgemail.com">SurgeMail</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>When you create a new domain the defaults are taken from a config file domain_defaults.txt which must be in the 'web' folder.</p>



<p>This file contains only basic settings in the form:</p>



<p>&lt;setting_name>&lt;space>&lt;setting_value></p>



<p>e.g.</p>



<p>quota_default 100mb<br>ssl_require_login true</p>



<p></p>
<p>The post <a rel="nofollow" href="https://surgemail.com/knowledge-base/domain-defaults/">Domain defaults</a> appeared first on <a rel="nofollow" href="https://surgemail.com">SurgeMail</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>g_url_redirect</title>
		<link>https://surgemail.com/knowledge-base/g_url_redirect/</link>
		
		<dc:creator><![CDATA[chrisp]]></dc:creator>
		<pubDate>Fri, 26 Mar 2021 01:48:11 +0000</pubDate>
				<guid isPermaLink="false">https://surgemail.com/?post_type=ht_kb&#038;p=3879</guid>

					<description><![CDATA[<p>g_url_redirect – Sends http 301 redirect to tell browser resource has moved Typical usage to move users from http to https automatically, e.g. g_url_redirect from=”http://*/surgeweb” to=”https://%1:7443/surgeweb” ports=”80,7080″ Or you may wish to change the default page to webmail, e.g. g_url_redirect from=”/” to=”/surgeweb” ports=”443,80″ Syntax: g_url_redirect from=string to=string ports=string</p>
<p>The post <a rel="nofollow" href="https://surgemail.com/knowledge-base/g_url_redirect/">g_url_redirect</a> appeared first on <a rel="nofollow" href="https://surgemail.com">SurgeMail</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading" id="g-url-redirect-sends-http-301-redirect-to-tell-browser-resource-has-moved">g_url_redirect – Sends http 301 redirect to tell browser resource has moved</h3>



<p>Typical usage to move users from http to https automatically, e.g. g_url_redirect from=”http://*/surgeweb” to=”https://%1:7443/surgeweb” ports=”80,7080″</p>



<p>Or you may wish to change the default page to webmail, e.g.</p>



<p>g_url_redirect from=”/” to=”/surgeweb” ports=”443,80″</p>



<p>Syntax: g_url_redirect from=string to=string ports=string</p>
<p>The post <a rel="nofollow" href="https://surgemail.com/knowledge-base/g_url_redirect/">g_url_redirect</a> appeared first on <a rel="nofollow" href="https://surgemail.com">SurgeMail</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Twofactor Authentication 2fa</title>
		<link>https://surgemail.com/knowledge-base/twofactor-authentication/</link>
		
		<dc:creator><![CDATA[chrisp]]></dc:creator>
		<pubDate>Wed, 24 Mar 2021 20:51:04 +0000</pubDate>
				<guid isPermaLink="false">https://surgemail.com/?post_type=ht_kb&#038;p=3865</guid>

					<description><![CDATA[<p>To enable two factor authentication set &#160;g_pass_twofactor “true”&#160;then the users can enable two factor authentication in their user self admin interface: https://your.mail.server/cgi/user.cgi The user can then specify what level of two factor authentication they wish, as imap smtp and pop were never intended to use this type of authentication it only works really well for<br /><a class="moretag" href="https://surgemail.com/knowledge-base/twofactor-authentication/">+ Read More</a></p>
<p>The post <a rel="nofollow" href="https://surgemail.com/knowledge-base/twofactor-authentication/">Twofactor Authentication 2fa</a> appeared first on <a rel="nofollow" href="https://surgemail.com">SurgeMail</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>To enable two factor authentication set &nbsp;g_pass_twofactor “true”&nbsp;then the users can enable two factor authentication in their user self admin interface:</p>



<p>https://your.mail.server/cgi/user.cgi</p>



<p>The user can then specify what level of two factor authentication they wish, as imap smtp and pop were never intended to use this type of authentication it only works really well for surgeweb logins.  But it can still add a layer of security for the others as well. </p>



<p>The user.cgi page allows users to also create or delete application passwords for legacy applications (normal desktop email clients).  </p>



<p>Alternatively the setting g_pass_twofactor_merged "true", can be used, then the user logs into legacy applications with their regular password+twofactorcode. So lets say your password is 'secret' and your 2fa app was showing code '1232", you would enter "secret+1232" as your password, it would then work as normal for a few hours, and then it would require the password to be entered again.</p>



<p>Lets be blunt, legacy applications (all normal email clients) are not designed to be used with two factor authentication, so it's a question of 'which cludge do you wish to use'.  Both are much more secure than not having 2 factor authentication, but not nearly as secure as true 2fa.  And both add a level of inconvenience. </p>



<p></p>



<p></p>
<p>The post <a rel="nofollow" href="https://surgemail.com/knowledge-base/twofactor-authentication/">Twofactor Authentication 2fa</a> appeared first on <a rel="nofollow" href="https://surgemail.com">SurgeMail</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Disable your Firewall</title>
		<link>https://surgemail.com/knowledge-base/disable-your-firewall/</link>
		
		<dc:creator><![CDATA[chrisp]]></dc:creator>
		<pubDate>Mon, 13 Jul 2020 01:24:43 +0000</pubDate>
				<guid isPermaLink="false">https://surgemail.com/?post_type=ht_kb&#038;p=2466</guid>

					<description><![CDATA[<p>Linux has an plethora of annoying firewalls, in general, the thing to do is to turn them off as they don’t do anything useful :-), it’s also a good way to figure out that the firewall is the problem. Then later if you want a firewall for some reason, you can enable one. Sadly there<br /><a class="moretag" href="https://surgemail.com/knowledge-base/disable-your-firewall/">+ Read More</a></p>
<p>The post <a rel="nofollow" href="https://surgemail.com/knowledge-base/disable-your-firewall/">Disable your Firewall</a> appeared first on <a rel="nofollow" href="https://surgemail.com">SurgeMail</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Linux has an plethora of annoying firewalls, in general, the thing to do is to turn them off as they don’t do anything useful :-), it’s also a good way to figure out that the firewall is the problem. Then later if you want a firewall for some reason, you can enable one. Sadly there is no way to know which firewall you have.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>nft flush ruleset<br>systemctl mask nftables.service</p><p>systemctl stop firewalld<br>systemctl disable firewalld</p><p>service iptables stop<br>service iptables disable</p><p>service ipchains disable<br>service ipchains stop</p><p>iptables -P INPUT ACCEPT<br>iptables -P FORWARD ACCEPT<br>iptables -P OUTPUT ACCEPT<br>iptables -t nat -F<br>iptables -t mangle -F<br>iptables -F<br>iptables -X</p><p>cfx -x</p></blockquote>



<p>reboot - then test if you have succeeded with telnet</p>



<p>telnet netwinsite.com 25</p>



<p></p>



<p></p>



<p></p>
<p>The post <a rel="nofollow" href="https://surgemail.com/knowledge-base/disable-your-firewall/">Disable your Firewall</a> appeared first on <a rel="nofollow" href="https://surgemail.com">SurgeMail</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>DList language translation</title>
		<link>https://surgemail.com/knowledge-base/dlist-language-translation/</link>
		
		<dc:creator><![CDATA[chrisp]]></dc:creator>
		<pubDate>Wed, 11 Mar 2020 00:30:26 +0000</pubDate>
				<guid isPermaLink="false">https://surgemail.com/?post_type=ht_kb&#038;p=1649</guid>

					<description><![CDATA[<p>All language files are in ASCII text, and can be modified with any good text editor. All you need to do is change the translations from the default values into the values which you choose. Here is an example %s has %d post office messages Translation of: %s has %d post office messages %s password<br /><a class="moretag" href="https://surgemail.com/knowledge-base/dlist-language-translation/">+ Read More</a></p>
<p>The post <a rel="nofollow" href="https://surgemail.com/knowledge-base/dlist-language-translation/">DList language translation</a> appeared first on <a rel="nofollow" href="https://surgemail.com">SurgeMail</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>All language files are in ASCII text, and can be modified with any good text editor. All you need to do is change the translations from the default values into the values which you choose.  Here is an example</p>



<pre class="wp-block-preformatted">%s has %d post office messages
Translation of: %s has %d post office messages
%s password wrong or not a valid user
Translation of: %s password wrong or not a valid user
</pre>



<figure class="wp-block-table"><table class=""><tbody><tr><td><em>Instruction</em></td><td>&nbsp;</td><td><em>File After Modification</em></td></tr><tr><td>&nbsp;</td></tr><tr><td>Translate all translation lines you wish the product to use.</td><td>&nbsp;</td><td>%s has %d post office messages
Translation of: <strong>%s hat %d Postmeldungen</strong>
%s password wrong or not a valid user
Translation of: %s password wrong or not a valid user
</td></tr><tr><td>Remove the old 'Translation of:' phrases.</td><td>&nbsp;</td><td>%s has %d post office messages
<strong>%s hat %d Postmeldungen</strong>
%s password wrong or not a valid user
Translation of: %s password wrong or not a valid user
</td></tr><tr><td>Comment out any translations you do not want the product to perform.</td><td>&nbsp;</td><td>%s has %d post office messages
%s hat %d Postmeldungen
<strong>#</strong> %s password wrong or not a valid user
<strong>#</strong> Translation of: %s password wrong or not a valid user
</td></tr></tbody></table></figure>



<h4 class="wp-block-heading">NOTE CAREFULLY:</h4>



<ol class="wp-block-list"><li>Never remove any variables (e.g. %s, %d) from a translation, nor change the order in which they appear. This would cause incorrect display of messages, and instability of the product.</li><li>A language file need not specify all phrases generated by the product. If you don't wish a certain phrase to be translated, simply comment it out or delete it.</li><li>Never change the original phrase line of any pair, only the translation line. For example, in the default language file, you would only change lines like:Translation of: %s has %d post office messages</li></ol>



<h2 class="wp-block-heading">How Do I Use Language Translation With DLIST?</h2>



<p>When creating your lists.dat file, simply add a language_file setting to each list you want translated. This setting specifies the location of the language file to use for that list. For example:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>list newproducts<br>&nbsp;&nbsp;title Discussion of new products<br>&nbsp;&nbsp;language_file german.dat</p></blockquote>



<p>The language file to use:&nbsp;<a href="https://netwinsite.com/surgemail-workplace/help/dlist_lang.dat">dlist_lang.dat</a></p>
<p>The post <a rel="nofollow" href="https://surgemail.com/knowledge-base/dlist-language-translation/">DList language translation</a> appeared first on <a rel="nofollow" href="https://surgemail.com">SurgeMail</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Speech to text conversion</title>
		<link>https://surgemail.com/knowledge-base/speech-to-text-conversion/</link>
		
		<dc:creator><![CDATA[chrisp]]></dc:creator>
		<pubDate>Thu, 23 Jan 2020 00:17:00 +0000</pubDate>
				<guid isPermaLink="false">https://surgemail.com/?post_type=ht_kb&#038;p=1370</guid>

					<description><![CDATA[<p>Using a simple plugin and SurgeMail 7.4f-5 or later you can automatically convert incoming messages containing voice messages into text. The Google API is used for this. Installation instructions: Install ffmpeg !!! Install python 3.7 or later (if not already installed). See: https://www.python.org/ python3 --version Install the google speech api. Windows: pip install --upgrade google-cloud-speech<br /><a class="moretag" href="https://surgemail.com/knowledge-base/speech-to-text-conversion/">+ Read More</a></p>
<p>The post <a rel="nofollow" href="https://surgemail.com/knowledge-base/speech-to-text-conversion/">Speech to text conversion</a> appeared first on <a rel="nofollow" href="https://surgemail.com">SurgeMail</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Using a simple plugin and SurgeMail 7.4f-5 or later you can automatically convert incoming messages containing voice messages into text. The Google API is used for this.</p>



<h2 class="wp-block-heading">Installation instructions:</h2>



<p>Install ffmpeg !!!</p>



<p>Install python 3.7 or later (if not already installed).  See:  <a href="https://www.python.org/">https://www.python.org/</a> </p>



<p><strong>python3 --version</strong></p>



<p>Install the google speech api.</p>



<pre class="wp-block-preformatted">Windows: pip install --upgrade google-cloud-speech  
Linux: pip3 install --upgrade google-cloud-speech
Linux: pip3 install --upgrade google-api-python-client
</pre>



<p>Download the two scripts you need <a href="https://netwinsite.com/ftp/surgemail/speech.tar.gz">here</a>:</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<pre class="wp-block-preformatted">wget https://netwinsite.com/ftp/surgemail/speech.tar.gz
cd /usr/local/surgemail
gunzip speech.tar.gz
tar -xvf speech.tar</pre>
</div></div>



<p>Extract and place in your surgemail folder. <strong>Then change the line in speech_run.cmd (for windows) to point to your python installation</strong>:</p>



<p><strong> APATH=c:\anaconda</strong></p>



<p>On linux:  <strong>chmod +x speech_cmd.sh speech_submit.py</strong></p>



<h2 class="wp-block-heading">Add settings to surgemail.ini</h2>



<p>Windows: <code>g_speech_cmd "\surgemail\speech_run.cmd"</code> </p>



<p>Linux:  <code>g_speech_cmd "/usr/local/surgemail/speech_run.sh"</code>  </p>



<p>Limit the conversion to messages from a particular source adderss: </p>



<p>g_speech_from "*@xyz.com" </p>



<p></p>



<h2 class="wp-block-heading">Create google cloud account</h2>



<ol class="wp-block-list">
<li>Create a google cloud project and grant access to the speech to text API.  <a href="https://console.cloud.google.com/home/dashboard?project=talkproj-265803">https://console.cloud.google.com</a> </li>



<li>Go to the top of the page, use the drop down menu to create a new 'project'.</li>



<li>Go to the top again, and select the new project</li>



<li>Click on 'API's and services' then 'Credentials' then +Create Credentials</li>



<li>Choose 'Service Account'</li>



<li>Select role 'Service Owner'</li>



<li><strong>Create credentials, save in surgemail folder.</strong></li>



<li>Click on Google Cloud Platform 'top left'</li>



<li>Click on API's and Services/  Library</li>



<li>Search for 'speech', select Clound speech to text api</li>



<li><strong>Click 'enable'</strong></li>
</ol>



<h2 class="wp-block-heading">Testing it</h2>



<p>First run the python test script to see if your configuration is valid and credentials in your speech.json file are correctly setup.</p>



<pre class="wp-block-preformatted">windows:  <strong>speech_run.cmd speech_sample.wav</strong> 
Linux: ./speech_run.sh speech_sample.wav

Now examine speech_sample.wav.txt to see if it was created. If not examine speech_sample_wav.err</pre>



<h2 class="wp-block-heading">Things you will need to fix!</h2>



<ul class="wp-block-list">
<li>Add full path to ffmpeg command in speech_submit.py if command not in path</li>



<li>Ensure the google api is installed for user 'mail'.</li>
</ul>



<p>Next send a message with an attached .wav file, then grep the logs for 'speech' to see how it went.  The wav file must be of the correct format (mono wav file).</p>



<p></p>
<p>The post <a rel="nofollow" href="https://surgemail.com/knowledge-base/speech-to-text-conversion/">Speech to text conversion</a> appeared first on <a rel="nofollow" href="https://surgemail.com">SurgeMail</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Manual SSL Certificates</title>
		<link>https://surgemail.com/knowledge-base/manual-ssl-certificates/</link>
		
		<dc:creator><![CDATA[chrisp]]></dc:creator>
		<pubDate>Tue, 21 Jan 2020 19:25:22 +0000</pubDate>
				<guid isPermaLink="false">https://surgemail.com/?post_type=ht_kb&#038;p=1366</guid>

					<description><![CDATA[<p>We strongly recommend you use LetsEncrypt instead of manual certificates How to get a signed certificate (STOP, GO TO THE LetsEncrypt page instead of doing this!) Open the SSL Configure page in the Web Admin interface. Click on 'Create CSR', if you have never done this before, and give the details of your server. Click<br /><a class="moretag" href="https://surgemail.com/knowledge-base/manual-ssl-certificates/">+ Read More</a></p>
<p>The post <a rel="nofollow" href="https://surgemail.com/knowledge-base/manual-ssl-certificates/">Manual SSL Certificates</a> appeared first on <a rel="nofollow" href="https://surgemail.com">SurgeMail</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><a href="https://surgemail.com/knowledge-base/enable-ssl/"><strong>We strongly recommend you use LetsEncrypt instead of manual certificates</strong></a></p>



<h3 class="wp-block-heading">How to get a signed certificate</h3>



<ul class="wp-block-list"><li>(STOP, GO TO THE LetsEncrypt page instead of doing this!)</li><li>Open the SSL Configure page in the Web Admin interface.</li><li>Click on 'Create CSR', if you have never done this before, and give the details of your server.</li><li>Click on 'Show CSR' and copy the code.</li><li>Go to your favorite certificate registry and request a signed certificate or use LetsEncrypt (see notes below), The registry service will want this CSR .</li><li>They will then give you a signed certificate and intermediate certificates, ask for 'Apache' or 'Other' format.</li><li>Upload the two files using the buttons on the web interface</li></ul>



<h3 class="wp-block-heading">Warning:</h3>



<p>If your certificate doesn't match the current private key, or is miss formatted etc, then you may loose connection to this page when you press 'save changes', instead use the non ssl admin port: http://your.server:7026, examine mail.err for&nbsp; the cause, remove ssl/surge_cert.pem and restart surgemail to recreate a working unsigned certificate!<br></p>



<h3 class="wp-block-heading">Manual Installation of Certificates - And debugging bad certificates....</h3>



<p>You can install your certificate manually by replacing the file ssl/surge_cert.pem it should contain start with your certificate, and then it should have your intermediate chain certificates appended to the end of it.<br></p>



<p><strong>If your certificate was created from a different private key </strong>then also replace ssl/surge_priv.pem.  If your certificate is faulty in any way ssl will not work, in that case examine mail.err to find the cause, and remove surge_cert.pem and restart surgemail to recreate an unsigned but working certificate.</p>



<p>If you are using g_ssl_perdomain "true" then place certifictes in ssl/mail.domain.name folders</p>



<p>Generally for an ssl certificate you should make sure you have url_host defined for each domain, e.g. for xyz.com url_host should be "mail.xyz.com"</p>



<p>If you are using a wild card ssl certificate and want it to match correctly with any sub domain used, then use the new setting ssl_wildcard "*.xyz.com" so it will match correctly.</p>
<p>The post <a rel="nofollow" href="https://surgemail.com/knowledge-base/manual-ssl-certificates/">Manual SSL Certificates</a> appeared first on <a rel="nofollow" href="https://surgemail.com">SurgeMail</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Moving or Migrating SurgeMail to a new system</title>
		<link>https://surgemail.com/knowledge-base/moving-surgemail-to-a-new-system/</link>
		
		<dc:creator><![CDATA[chrisp]]></dc:creator>
		<pubDate>Sun, 29 Dec 2019 21:36:02 +0000</pubDate>
				<guid isPermaLink="false">https://surgemail.com/?post_type=ht_kb&#038;p=1323</guid>

					<description><![CDATA[<p>How do I move SurgeMail to a new machine? There are two ways of doing this, one is basically copying all the files to the new machine. The second is by setting up a mirror and letting SurgeMail mirror itself over to the second machine. Automatic method, using Mirroring feature When upgrading hardware or changing<br /><a class="moretag" href="https://surgemail.com/knowledge-base/moving-surgemail-to-a-new-system/">+ Read More</a></p>
<p>The post <a rel="nofollow" href="https://surgemail.com/knowledge-base/moving-surgemail-to-a-new-system/">Moving or Migrating SurgeMail to a new system</a> appeared first on <a rel="nofollow" href="https://surgemail.com">SurgeMail</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">How do I move SurgeMail to a new machine?</h3>



<p>There are two ways of doing this, one is basically copying all the files to the new machine. The second is by setting up a mirror and letting SurgeMail mirror itself over to the second machine.</p>



<h3 class="wp-block-heading">Automatic method, using Mirroring feature</h3>



<p>When upgrading hardware or changing operating systems you can use mirroring to move your installation without disrupting users.</p>



<ol class="wp-block-list">
<li>Install surgemail on the 'new' system</li>



<li><a href="https://netwinsite.com/surgemail/help/mirror.htm#on">Setup mirroring settings on both systems</a>, the existing system will be 'master' the new system will be 'slave'</li>



<li>On the master issue the commands:
<ol class="wp-block-list">
<li><strong>tellmail resync_config</strong></li>



<li>tellmail resync_nwauth</li>



<li>tellmail resync_mkdir</li>



<li>tellmail resync</li>
</ol>
</li>



<li>Carefully check the new system is working and has all accounts/messages.  Use:  <strong>tellmail mirror_analyze&nbsp;</strong></li>



<li>Move the license key, activate your key on the new system. Best done earlier by emailing netwin with the registration number. </li>



<li>Move the users across. e.g. change your DNS or IP addresses so users now connect to the new system.  </li>



<li>Stop both servers and swap the master/slave settings so the new system is the master.</li>



<li>To ensure aliases are working on the slave copy domuser.dat from master to slave manually!</li>
</ol>



<h3 class="wp-block-heading">Manual method to move SurgeMail</h3>



<ol class="wp-block-list">
<li>Install SurgeMail on new machine</li>



<li>Setup anything you tailored on the original system (e.g. authent modules)</li>



<li>Stop SurgeMail on new machine</li>



<li>tellmail deactivate on old machine</li>



<li>Stop SurgeMail on old machine</li>



<li>Copy surgemail.ini from old machine to new machine /etc/surgemail.ini or \windows\surgemail.ini</li>



<li>(note all other paths you need are defined in surgemail.ini, particularly g_home and mailbox_path)<br></li>



<li>Copy the SurgeMail directory, the mail directory and the database over to new machine.<br>Check surgemail.ini for the paths to copy for the mail directory (g_mailbox)<br>The default database is nwauth which will be stored in the surgemail directory but consists of the files (nwauth.add, nwauth.txt).  The exact file paths depend on your system search for "mailbox_path" and "g_home" in surgemail.ini to find the paths in question.  </li>



<li>Check surgemail.ini and check everything is located correctly. Change all the paths if necessary</li>



<li>Chown -R mail files (if on UNIX)&nbsp;for all mail folders etc...</li>



<li>Start surgemail on new machine, check logging in etc</li>



<li>tellmail activate on new machine</li>



<li>If you have moved from one OS to a different OS then you should run the installer on the new server again so that it places the correct binaries on the new system.</li>
</ol>



<h3 class="wp-block-heading">Merging one or more domains from one SurgeMail server with Another:</h3>



<ol class="wp-block-list">
<li>The Vdomain sections for each domain from the old system and append to surgemail.ini on the new system.</li>



<li>copy mailbox_path directory tree for each domain from old to new system.</li>



<li>grep nwauth.add and nwauth.txt for the domain(s) in question, and append those lines to nwauth.add on the new system.<br>grep xyz.com nwauth.txt nwauth.add &gt;nwauth.append (then copy and append that file)</li>



<li>If you have dlist mailing lists on the old system:</li>



<li>append dlist/lists.dat from old to new system.</li>



<li>Copy existing dlist/listname folders and contents from old to new system.</li>
</ol>



<p>For a large active system you might use rsync or multiple copy commands to get the two exactly in sync before the changeover (for mailbox_path data).</p>



<h2 class="wp-block-heading">Moving an existing mirror pair</h2>



<p>In this situation you must first turn off mirroring to the existing slave, remove access to it, and then commence with the regular instructions above to create a new mirror in the new system. Then finally create a new 'mirror' from the mirrored system after setting it as the master:</p>



<ul class="wp-block-list">
<li>Upgrade the existing system to the current surgemail release</li>



<li>Install surgemail on the new master server</li>



<li>Disable failover/user access to the existing SLAVE system, shut it down to be sure!!! </li>



<li>On the existing master point g_mirror_host at the new master server ip address.</li>



<li>On the<strong> new</strong> 'master' server configure it as a slave to the existing master:</li>
</ul>



<pre class="wp-block-preformatted">g_mirror_nossl "TRUE"
g_mirror_mode "secondary"
g_mirror_host "MASTER.IP.ADDRESS"
g_mirror_secret "MUSTMATCHMASTER_SECRET" 
g_mirror_config "true"
g_mirror_live "true"
</pre>



<ul class="wp-block-list">
<li>Start mirroring from the existing master to what will 'become' the new master:</li>



<li>tellmail reload</li>



<li>tellmail resync_config</li>



<li>tellmail resync_nwauth</li>



<li>tellmail resync</li>



<li>tellmail resync_mkdir</li>



<li>tellmail resync_folder train</li>



<li>tellmail resync_folder lets</li>



<li>tellmail resync_folder dlist</li>
</ul>



<p><strong>Wait for the mirroring to complete.</strong></p>



<p>Use: tellmail mirror_status to watch progress, then when it's complete use: tellmail mirror_analyze to check mirroring is complete.  </p>



<p>Test the new system to ensure it's working, manually check an account.</p>



<ul class="wp-block-list">
<li>remove g_mirror settings from OLD master system, and then shut it down.</li>



<li>set g_mirror_host on the NEW master system to point to the NEW slave.</li>



<li>set g_mirror_mode on the NEW master to "primary" and restart surgemail.</li>



<li>re-assign ip addresses to move users onto the new master system. </li>
</ul>



<p>Now add the new 'mirror' server.  See instructions https://surgemail.com/knowledge-base/mirror-setup/ for adding a mirror.  </p>



<p></p>
<p>The post <a rel="nofollow" href="https://surgemail.com/knowledge-base/moving-surgemail-to-a-new-system/">Moving or Migrating SurgeMail to a new system</a> appeared first on <a rel="nofollow" href="https://surgemail.com">SurgeMail</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>CalDAV client configuration</title>
		<link>https://surgemail.com/knowledge-base/caldav-client-configuration/</link>
		
		<dc:creator><![CDATA[chrisp]]></dc:creator>
		<pubDate>Mon, 11 Nov 2019 02:22:17 +0000</pubDate>
				<guid isPermaLink="false">https://surgemail.com/?post_type=ht_kb&#038;p=1013</guid>

					<description><![CDATA[<p>SurgeMail CalDAV User Setup This provides surgemail standalone CalDAV calendaring support (including calendar sharing) for mobile devices and desktop clients. If it needs to be specified the full caldav url is: http://yourserver.com/cal/principals/email@domain.com or some servers may expect: http://yourserver.com/cal/calendars/email@domain.com Username needs to be full&#160;email@domain.com&#160;and password is your normal email account password. Configuration walkthrough of some sample<br /><a class="moretag" href="https://surgemail.com/knowledge-base/caldav-client-configuration/">+ Read More</a></p>
<p>The post <a rel="nofollow" href="https://surgemail.com/knowledge-base/caldav-client-configuration/">CalDAV client configuration</a> appeared first on <a rel="nofollow" href="https://surgemail.com">SurgeMail</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">SurgeMail CalDAV User Setup</h1>



<p>This provides surgemail standalone CalDAV calendaring support (including calendar sharing) for mobile devices and desktop clients.</p>



<p>If it needs to be specified the full caldav url is:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>http://yourserver.com/cal/principals/email@domain.com</strong></p></blockquote>



<p>or some servers may expect:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>http://yourserver.com/cal/calendars/email@domain.com</strong></p></blockquote>



<p>Username needs to be full&nbsp;<strong>email@domain.com</strong>&nbsp;and password is your normal email account password. Configuration walkthrough of some sample clients below:</p>



<h2 class="wp-block-heading">SurgeWeb as a CalDav calendar client</h2>



<p>SurgeWeb now supports CalDav integrated "drag and drop" calendaring from the surgeweb ajax interface. Provided this is enabled on surgeweb customisation page, no surgeweb configuration is needed <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>Key features include:</p>



<ul class="wp-block-list"><li>Calendar synchronisation with mobile clients</li><li>Calendar sharing between mutiple accounts</li><li>Define multiple additional calendars</li><li>Configure alerts that will trigger on mobile devices</li><li>Repeat event support</li></ul>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-1 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image"><a href="https://netwinsite.com/surgemail/help/images/cal1.png"><img decoding="async" src="https://netwinsite.com/surgemail/help/images/cal1_thumb.png" alt="Week View"/></a></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image"><a href="https://netwinsite.com/surgemail/help/images/cal4.png"><img decoding="async" src="https://netwinsite.com/surgemail/help/images/cal4_thumb.png" alt="Edit Event"/></a></figure>
</div>
</div>



<p>(click screenshots to enlarge)Additional features include:</p>



<ul class="wp-block-list"><li>Support for: Day, week, month and year views</li><li>Customise display color per calendar</li><li>Point &amp; click / drag &amp; drop event manipulation</li><li>Single key stroke switching between: date range and scale (one or more modifier keys plus arrows)</li></ul>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-2 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image"><a href="https://netwinsite.com/surgemail/help/images/cal2.png"><img decoding="async" src="https://netwinsite.com/surgemail/help/images/cal2_thumb.png" alt="Month View"/></a></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image"><a href="https://netwinsite.com/surgemail/help/images/cal3.png"><img decoding="async" src="https://netwinsite.com/surgemail/help/images/cal3_thumb.png" alt="Year View"/></a></figure>
</div>
</div>



<h2 class="wp-block-heading">Configure Calendar Sharing using SurgeWeb</h2>



<p>Surgemail CalDAV calendaring will allow you to specify one or more calendars for each email account. Each of these calendars may be shared with other caldav users on the same system. Sharing is configured using the surgeweb interface (surgeplus calendaring page).</p>



<p>Calendars can be shared with the following permissions, and displayed to the person you are sharing it with as:</p>



<ul class="wp-block-list"><li>read / write access: displayed as "Calendar Name | Owner (RW)"</li><li>read access: displayed as "Calendar Name | Owner (R)"</li><li>free / busy access: displayed as "Calendar Name | Owner (B)"</li></ul>



<figure class="wp-block-image"><a href="https://netwinsite.com/surgemail/help/images/cal0.png"><img decoding="async" src="https://netwinsite.com/surgemail/help/images/cal0_thumb.png" alt="Share Calendars"/></a></figure>



<h2 class="wp-block-heading">iOS Client Configuration</h2>



<p>Standard account configuration under iOS should simply be a case of adding a new calDAV account and correctly filling out the server, fully specified email address as user name and the password:</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-3 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image"><img decoding="async" src="https://netwinsite.com/surgemail/help/images/caldav_ios1.png" alt=""/></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image"><img decoding="async" src="https://netwinsite.com/surgemail/help/images/caldav_ios2.png" alt=""/></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image"><img decoding="async" src="https://netwinsite.com/surgemail/help/images/caldav_ios3.png" alt=""/></figure>
</div>
</div>



<figure class="wp-block-image"><img decoding="async" src="https://netwinsite.com/surgemail/help/images/caldav_ios4.png" alt=""/></figure>



<p></p>



<p>In addition you may need to accept non ssl based connections if you do not have a CA signed SSL certificate and specify the server port if this is non standard :</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-4 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image"><img decoding="async" src="https://netwinsite.com/surgemail/help/images/caldav_ios5.png" alt=""/></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image"><img decoding="async" src="https://netwinsite.com/surgemail/help/images/caldav_ios6.png" alt=""/></figure>
</div>
</div>



<p></p>



<p>iOS will automatically detect the full caldav url, and automatically detect any calenders you have already got defined under the server on your account. Any calendars others have shared with you will also be automatically detected and displayed in your list of calendars.</p>



<h2 class="wp-block-heading">OSX iCal Desktop Client Configuration</h2>



<p>iCal will also automatically detect the full caldav url and all calendars based on valid username, password and server address settings. Again you may need to confirm acceptance of non ssl based connections if the server does not have a valid SSL certificate setup.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-5 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image"><img decoding="async" src="https://netwinsite.com/surgemail/help/images/caldav_ical1.png" alt=""/></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image"><img decoding="async" src="https://netwinsite.com/surgemail/help/images/caldav_ical2.png" alt=""/></figure>
</div>
</div>



<h2 class="wp-block-heading">Windows Lightning Thunderbird Extension Configuration</h2>



<p>Lightning has been tested and seems to work well as a free windows desktop CalDAV client with surgemail CalDAV calendaring. Setup is slightly more involved as it does not seem to autodetect the caldav url or calendars. (there may be ways around this - let me know if you find them)</p>



<p>To connect to existing calendars, use the surgeweb interface to copy the full url of any of your available calendars (or create / share calendars as needed), then add this as a new network calendar in Lightning:</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-6 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image"><img decoding="async" src="https://netwinsite.com/surgemail/help/images/caldav_light1.png" alt=""/></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image"><img decoding="async" src="https://netwinsite.com/surgemail/help/images/caldav_light2.png" alt=""/></figure>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image"><img decoding="async" src="https://netwinsite.com/surgemail/help/images/caldav_light3.png" alt=""/></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image"><img decoding="async" src="https://netwinsite.com/surgemail/help/images/caldav_light4.png" alt=""/></figure>
</div>
</div>



<h2 class="wp-block-heading">Android calendaring client</h2>



<p>Android "CalDAV-Sync" (no endorsement for this particular product and netwin is not affiliated with the developer in any way) has been tested to successfully allow surgemail CalDAV calendars to be used using the native android calendar client.</p>



<p>To configure, just login using the url of http://yourserver.com:port/cal as the url and email address and password and all existing calendars should get detected.</p>



<h2 class="wp-block-heading">Other CalDAV Clients</h2>



<p>A variety of other CalDAV clients are available and may suit your needs better than the above listed clients.<br></p>



<p>For administrators also see caldav <a href="https://surgemail.com/knowledge-base/caldav-plugin-install/">server configuration</a>.</p>
<p>The post <a rel="nofollow" href="https://surgemail.com/knowledge-base/caldav-client-configuration/">CalDAV client configuration</a> appeared first on <a rel="nofollow" href="https://surgemail.com">SurgeMail</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
