<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>mailstore-notes.dwlab.me - ServerUnmappableException</title>
    <link rel="self" type="application/atom+xml" href="https://mailstore-notes.dwlab.me/tags/serverunmappableexception/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://mailstore-notes.dwlab.me/"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2023-01-21T00:00:00+00:00</updated>
    <id>https://mailstore-notes.dwlab.me/tags/serverunmappableexception/atom.xml</id>
    <entry xml:lang="en">
        <title>Extracting unknown e-mail addresses from journal-type profile&#x27;s debug log</title>
        <published>2023-01-21T00:00:00+00:00</published>
        <updated>2023-01-21T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              dave
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://mailstore-notes.dwlab.me/articles/ServerUnmappableException/"/>
        <id>https://mailstore-notes.dwlab.me/articles/ServerUnmappableException/</id>
        
        <content type="html" xml:base="https://mailstore-notes.dwlab.me/articles/ServerUnmappableException/">&lt;h2 id=&quot;bulk-import-of-messages-without-a-list-of-all-known-e-mail-addresses&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#bulk-import-of-messages-without-a-list-of-all-known-e-mail-addresses&quot; aria-label=&quot;Anchor link for: bulk-import-of-messages-without-a-list-of-all-known-e-mail-addresses&quot;&gt;🔗&lt;&#x2F;a&gt;Bulk import of messages without a list of all known e-mail addresses&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;preface&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#preface&quot; aria-label=&quot;Anchor link for: preface&quot;&gt;🔗&lt;&#x2F;a&gt;Preface&lt;&#x2F;h3&gt;
&lt;p&gt;This article describes how to perform a one-time archive or migration of messages into MailStore where the messages are available in EML files, PST files, an Exchange journal mailbox or a Multidrop mailbox and there is no definitive list of users &#x2F; e-mail addresses available.&lt;&#x2F;p&gt;
&lt;p&gt;All steps are to be performed in MailStore Client, logged in as an admin, unless otherwise described.&lt;&#x2F;p&gt;
&lt;p&gt;I will be using &lt;code&gt;example.com&lt;&#x2F;code&gt; as the domain for my company in this article.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;licensing&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#licensing&quot; aria-label=&quot;Anchor link for: licensing&quot;&gt;🔗&lt;&#x2F;a&gt;Licensing&lt;&#x2F;h3&gt;
&lt;p&gt;You will need a user license for each user for the archiving process. MailStore&#x27;s 30-day trial has a 500-user limit and can be used for the initial archiving, or you could import users in batches instead.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;creating-the-initial-users-optional&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#creating-the-initial-users-optional&quot; aria-label=&quot;Anchor link for: creating-the-initial-users-optional&quot;&gt;🔗&lt;&#x2F;a&gt;Creating the initial users (optional)&lt;&#x2F;h3&gt;
&lt;p&gt;To start off with, if you will eventually be using Directory Services to synchronize users then you can set it up first. This step is optional, and Directory Services is not actually needed at all, but by first synchronizing users it will reduce the number of users that need to be manually created.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;ll be using the full e-mail address in this article but if your Directory Services synchronizes with Active Directory then it may use only the local part. You can modify the &quot;CreateUser&quot; API call slightly to accommodate. While it is possible to rename users&#x2F;archives after the fact it will save some time to use the correct configuration from the server.&lt;&#x2F;p&gt;
&lt;p&gt;If you aren&#x27;t using Directory Services or simply are not ready to synchronize users, you just need at least one user with an e-mail address attached to their account. You could edit the admin account and set &lt;code&gt;admin@example.com&lt;&#x2F;code&gt; for the address.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;archiving-profile&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#archiving-profile&quot; aria-label=&quot;Anchor link for: archiving-profile&quot;&gt;🔗&lt;&#x2F;a&gt;Archiving Profile&lt;&#x2F;h3&gt;
&lt;p&gt;You can archive from EML files, PST files of type &lt;em&gt;Multiple Users&lt;&#x2F;em&gt; or &lt;em&gt;Exchange Journal&lt;&#x2F;em&gt;, or &lt;em&gt;Multidrop&lt;&#x2F;em&gt; accounts, the process is similar for all message sources.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;eml-files&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#eml-files&quot; aria-label=&quot;Anchor link for: eml-files&quot;&gt;🔗&lt;&#x2F;a&gt;EML files&lt;&#x2F;h4&gt;
&lt;ul&gt;
&lt;li&gt;Go to &lt;em&gt;Archive E-mail&lt;&#x2F;em&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Create a new profile --&amp;gt; &lt;em&gt;E-mail Files&lt;&#x2F;em&gt; --&amp;gt; &lt;em&gt;Multiple Users&lt;&#x2F;em&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Set the &lt;em&gt;Directory&lt;&#x2F;em&gt; to a directory that contains the EML files to be archived.&lt;&#x2F;li&gt;
&lt;li&gt;Set &quot;Messages with unknown e-mail addresses&quot; to &quot;Don&#x27;t archive&quot;.&lt;&#x2F;li&gt;
&lt;li&gt;Leave &quot;Delete them in origin mailbox&quot; unchecked.&lt;&#x2F;li&gt;
&lt;li&gt;Run the archiving profile.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h4 id=&quot;running-the-archiving-profile-for-the-first-time&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#running-the-archiving-profile-for-the-first-time&quot; aria-label=&quot;Anchor link for: running-the-archiving-profile-for-the-first-time&quot;&gt;🔗&lt;&#x2F;a&gt;Running the archiving profile for the first time&lt;&#x2F;h4&gt;
&lt;p&gt;You can start with a subdirectory that contains a few messages to understand the process, and later run the profile again against the same messages without duplicating any messages in the archive. Depending on the amount of mail you have to import, it may take several hours to perform the initial archiving run which generates the list we will use going forward.&lt;&#x2F;p&gt;
&lt;p&gt;Any user that already exists in MailStore at this point will have their messages archived, while messages that do not belong to any known user will have a debug log entry created, providing us a list of needed users.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;get-the-debug-log&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#get-the-debug-log&quot; aria-label=&quot;Anchor link for: get-the-debug-log&quot;&gt;🔗&lt;&#x2F;a&gt;Get the debug log&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Click &lt;em&gt;Details&lt;&#x2F;em&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;You should see a number of messages that are skipped with the message &lt;code&gt;because the target user archive could not be determined based on the e-mail addresses&lt;&#x2F;code&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Click on &lt;em&gt;Debug Log&lt;&#x2F;em&gt; and &lt;em&gt;Select in Explorer&lt;&#x2F;em&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Copy the log file to another directory as MailStore will remove the file when you close the dialog.&lt;&#x2F;li&gt;
&lt;li&gt;Return to the details dialog and close it (this dialog blocks further access to MailStore Client).&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;You may want to open the log to take a look, in which case look for the lines that look like this:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;code&gt;MailStore.Common.Interfaces.ServerUnmappableException: MailStore is unable to determine where to store this email. Please ensure that e-mail addresses are specified in the users&#x27; settings. Senders and recipients: noreply@mailstore.com, sherry.hall@example.com, frank.clark@example.com&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;code&gt;noreply@mailstore.com&lt;&#x2F;code&gt; is an example of an external address, while the&lt;code&gt;@example.com&lt;&#x2F;code&gt; addresses belong to our example company in this documentation. Note that there may be any number of addresses, but most messages will just have two.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;get-the-e-mail-addresses-out-of-the-debug-log&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#get-the-e-mail-addresses-out-of-the-debug-log&quot; aria-label=&quot;Anchor link for: get-the-e-mail-addresses-out-of-the-debug-log&quot;&gt;🔗&lt;&#x2F;a&gt;Get the e-mail addresses out of the debug log&lt;&#x2F;h3&gt;
&lt;p&gt;We need to get the e-mail addresses from the debug log lines above into a list, one e-mail address per line, with all other punctuation and spaces removed. Duplicates will not cause errors, but will take time to process, so it is ideal to remove them from the list but it is not required.&lt;&#x2F;p&gt;
&lt;p&gt;There are a lot of ways you can do this, including doing it entirely by hand for a small number of users, or you could use any regex capable editor or other tools. If you are doing it manually and miss a user, just create the user and run the archiving process again, MailStore will skip the messages already in the archive.&lt;&#x2F;p&gt;
&lt;p&gt;Aside from preparing this list manually, I will describe three ways to extract the data from the debug log.&lt;&#x2F;p&gt;
&lt;p&gt;The goal is to change this:&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;log-entry&quot; class=&quot;language-log-entry &quot;&gt;&lt;code class=&quot;language-log-entry&quot; data-lang=&quot;log-entry&quot;&gt;MailStore.Common.Interfaces.ServerUnmappableException: MailStore is unable to determine where to store this email. Please ensure that e-mail addresses are specified in the users&amp;#x27; settings. Senders and recipients: noreply@mailstore.com, sherry.hall@example.com, frank.clark@example.com
MailStore.Common.Interfaces.ServerUnmappableException: MailStore is unable to determine where to store this email. Please ensure that e-mail addresses are specified in the users&amp;#x27; settings. Senders and recipients: joe.smith@example.com, frank.clark@example.com
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;To a test file called &lt;code&gt;userlist.txt&lt;&#x2F;code&gt; that looks like this:&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;log-entry&quot; class=&quot;language-log-entry &quot;&gt;&lt;code class=&quot;language-log-entry&quot; data-lang=&quot;log-entry&quot;&gt;sherry.hall@example.com
frank.clark@example.com
joe.smith@example.com
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Note that the original list had external addresses like &lt;code&gt;noreply@mailstore.com&lt;&#x2F;code&gt; that were removed, and also &lt;code&gt;frank.clark@example.com&lt;&#x2F;code&gt; was listed twice but is now only listed once.&lt;&#x2F;p&gt;
&lt;p&gt;If you built the &lt;em&gt;userlist.txt&lt;&#x2F;em&gt; file manually, move ahead to &lt;strong&gt;Create the users&lt;&#x2F;strong&gt;, otherwise read on for automated ways of creating the list.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;linux-bash-command-line&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#linux-bash-command-line&quot; aria-label=&quot;Anchor link for: linux-bash-command-line&quot;&gt;🔗&lt;&#x2F;a&gt;Linux &#x2F; bash command line&lt;&#x2F;h4&gt;
&lt;p&gt;The Linux&#x2F;WSL steps are &lt;a href=&quot;https:&#x2F;&#x2F;mailstore-notes.dwlab.me&#x2F;articles&#x2F;ServerUnmappableException&#x2F;linux_wsl&#x2F;&quot;&gt;located in a separate article&lt;&#x2F;a&gt; and will only take a couple of minutes to complete.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;manually-via-excel&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#manually-via-excel&quot; aria-label=&quot;Anchor link for: manually-via-excel&quot;&gt;🔗&lt;&#x2F;a&gt;Manually (via Excel)&lt;&#x2F;h4&gt;
&lt;p&gt;The Excel steps are &lt;a href=&quot;https:&#x2F;&#x2F;mailstore-notes.dwlab.me&#x2F;articles&#x2F;ServerUnmappableException&#x2F;excel&#x2F;&quot;&gt;located in a separate article&lt;&#x2F;a&gt; and only needed if you do not have access to a Linux console for a few minutes.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;create-the-users&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#create-the-users&quot; aria-label=&quot;Anchor link for: create-the-users&quot;&gt;🔗&lt;&#x2F;a&gt;Create the users&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Return to &lt;em&gt;MailStore Client&lt;&#x2F;em&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Right click on the profile created earlier and select &lt;em&gt;Create Scheduled Task&lt;&#x2F;em&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Click &lt;em&gt;Copy CMD Line&lt;&#x2F;em&gt;, then cancel the scheduled task dialog.&lt;&#x2F;li&gt;
&lt;li&gt;Paste the line into your favourite text editor.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The details of the line will vary, mine looks like this:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;code&gt;&quot;C:\Program Files (x86)\MailStore\MailStore Server\MailStoreCmd.exe&quot; --h=&quot;localhost&quot; --cred=&quot;admin@127.0.0.1&quot; -c import-execute --id=3 --user=&quot;admin&quot; --verbose&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;p&gt;We need the part up to and including &lt;code&gt;-c&lt;&#x2F;code&gt;, so like this:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;code&gt;&quot;C:\Program Files (x86)\MailStore\MailStore Server\MailStoreCmd.exe&quot; --h=&quot;localhost&quot; --cred=&quot;admin@127.0.0.1&quot; -c&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;p&gt;First we need to create each user, which we can do using a &lt;code&gt;for&lt;&#x2F;code&gt; loop through the &lt;em&gt;userlist.txt&lt;&#x2F;em&gt; file created above.&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;cmd.exe&quot; class=&quot;language-cmd.exe &quot;&gt;&lt;code class=&quot;language-cmd.exe&quot; data-lang=&quot;cmd.exe&quot;&gt;for &amp;#x2F;F %x in (userlist.txt) do &amp;quot;C:\Program Files (x86)\MailStore\MailStore Server\MailStoreCmd.exe&amp;quot; --h=&amp;quot;localhost&amp;quot; --cred=&amp;quot;admin@127.0.0.1&amp;quot; -c CreateUser --userName %x --privileges &amp;quot;none&amp;quot;
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Then set the e-mail addresses field:&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;cmd.exe&quot; class=&quot;language-cmd.exe &quot;&gt;&lt;code class=&quot;language-cmd.exe&quot; data-lang=&quot;cmd.exe&quot;&gt;for &amp;#x2F;F %x in (userlist.txt) do &amp;quot;C:\Program Files (x86)\MailStore\MailStore Server\MailStoreCmd.exe&amp;quot; --h=&amp;quot;localhost&amp;quot; --cred=&amp;quot;admin@127.0.0.1&amp;quot; -c SetUserEmailAddresses --userName %x --emailAddresses %x
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;A note about using bare usernames (without the &lt;code&gt;@example.com&lt;&#x2F;code&gt; domain portion): You could remove the domain from the lines in &lt;em&gt;userlist.txt&lt;&#x2F;em&gt; and then when setting e-mail addresses replace the &lt;code&gt;--emailAddresses %x&lt;&#x2F;code&gt; part with &lt;code&gt;--emailAddresses %x@example.com&lt;&#x2F;code&gt; instead.&lt;&#x2F;p&gt;
&lt;p&gt;Creating totally different usernames and e-mail addresses (e.g. &lt;code&gt;fclark&lt;&#x2F;code&gt; and &lt;code&gt;frank.clark@example.com&lt;&#x2F;code&gt;) or listing multiple e-mail addresses is out of scope for this article, but you could modify the command lines above to match your environment.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;running-the-archive-profile&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#running-the-archive-profile&quot; aria-label=&quot;Anchor link for: running-the-archive-profile&quot;&gt;🔗&lt;&#x2F;a&gt;Running the archive profile&lt;&#x2F;h3&gt;
&lt;p&gt;Once your users are created, return to the &lt;em&gt;Archive E-mail&lt;&#x2F;em&gt; panel and run your &lt;code&gt;Multidrop Mailbox (File System)&lt;&#x2F;code&gt; profile again, this time it should process all messages.&lt;&#x2F;p&gt;
&lt;p&gt;Click the &lt;em&gt;Details&lt;&#x2F;em&gt; link again to review the results. If there are any messages that still don&#x27;t have a user associated with them, create the missing users and repeat the archive.&lt;&#x2F;p&gt;
&lt;p&gt;It is likely that you will have &lt;em&gt;new messages&lt;&#x2F;em&gt; archived and some &lt;em&gt;messages already existed in the archive&lt;&#x2F;em&gt;, but you should not have any further &lt;em&gt;messages have been skipped&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;cleanup-unneeded-users&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#cleanup-unneeded-users&quot; aria-label=&quot;Anchor link for: cleanup-unneeded-users&quot;&gt;🔗&lt;&#x2F;a&gt;Cleanup unneeded users&lt;&#x2F;h3&gt;
&lt;p&gt;At this point all of your source message files have been archived, and these files are no longer needed by MailStore.&lt;&#x2F;p&gt;
&lt;p&gt;It is likely you&#x27;ll want to delete the users created, you can do this using this command:&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;cmd.exe&quot; class=&quot;language-cmd.exe &quot;&gt;&lt;code class=&quot;language-cmd.exe&quot; data-lang=&quot;cmd.exe&quot;&gt;for &amp;#x2F;F %x in (userlist.txt) do &amp;quot;C:\Program Files (x86)\MailStore\MailStore Server\MailStoreCmd.exe&amp;quot; --h=&amp;quot;localhost&amp;quot; --cred=&amp;quot;admin@127.0.0.1&amp;quot; -c DeleteUser --userName %x
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Note that this will remove all users listed, including those that were previously created by Directory Services.&lt;&#x2F;p&gt;
&lt;p&gt;Instead you could also use MailStore Client&#x27;s &lt;em&gt;Users&lt;&#x2F;em&gt; list. In this case, select all users, hold control and unselect the current admin user, then delete all users.&lt;&#x2F;p&gt;
&lt;p&gt;If any users were created by Directory Services and deleted above they will be recreated by Directory Services again, with their default set of permissions.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;final-notes&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#final-notes&quot; aria-label=&quot;Anchor link for: final-notes&quot;&gt;🔗&lt;&#x2F;a&gt;Final notes&lt;&#x2F;h3&gt;
&lt;p&gt;A few more bits of information about the process that did not fit neatly above.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;creating-a-user-that-has-permissions-to-access-the-entire-archive&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#creating-a-user-that-has-permissions-to-access-the-entire-archive&quot; aria-label=&quot;Anchor link for: creating-a-user-that-has-permissions-to-access-the-entire-archive&quot;&gt;🔗&lt;&#x2F;a&gt;Creating a user that has permissions to access the entire archive&lt;&#x2F;h3&gt;
&lt;p&gt;You will likely now need to create one or more users that have access to the entire archive. From the users editor you can give a user the ability to read a specific archive, but this would take a lot of clicking to give a single user access to many archives.&lt;&#x2F;p&gt;
&lt;p&gt;Instead you can create an &lt;em&gt;Auditor&lt;&#x2F;em&gt; user that has read access to all archives without admin permissions. Go to &lt;em&gt;Compliance&lt;&#x2F;em&gt; -&amp;gt; &lt;em&gt;Compliance General&lt;&#x2F;em&gt; and create an auditor user.&lt;&#x2F;p&gt;
&lt;p&gt;You can create multiple auditor users if desired and once they&#x27;re created you can rename them to the user&#x27;s normal account name. If the target user already exists from Directory Services, delete their old account and rename the auditor user, then change their &lt;em&gt;Authentication Type&lt;&#x2F;em&gt; to &lt;code&gt;Directory Services&lt;&#x2F;code&gt;. Directory Services will update the full name and e-mail address the next time it synchronizes.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;user-interface&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#user-interface&quot; aria-label=&quot;Anchor link for: user-interface&quot;&gt;🔗&lt;&#x2F;a&gt;User Interface&lt;&#x2F;h4&gt;
&lt;p&gt;In the &lt;em&gt;Progress View&lt;&#x2F;em&gt; dialog when you click the &lt;em&gt;Details&lt;&#x2F;em&gt; link, the dialog blocks you from accessing MailStore Client&#x27;s interface until it is closed. I would therefore commend opening the debug log via Windows Explorer, copy the file, and return to MailStore Client to close this dialog otherwise it appears that MailStore Client is hung if you try to access other dialogs.&lt;&#x2F;p&gt;
&lt;p&gt;The debug log is only preserved while you leave &lt;em&gt;Progress View&lt;&#x2F;em&gt; open, if the &lt;em&gt;Debug Log&lt;&#x2F;em&gt; button is missing you are probably looking at Recent Results which does not contain the needed information.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;archiving&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#archiving&quot; aria-label=&quot;Anchor link for: archiving&quot;&gt;🔗&lt;&#x2F;a&gt;Archiving&lt;&#x2F;h4&gt;
&lt;p&gt;MailStore&#x27;s archiving profiles all skip messages already in the target archive&#x2F;folder, therefore there is no need to remove messages in the archive if you repeat the process after creating new users or adding more EML files.&lt;&#x2F;p&gt;
&lt;p&gt;If you change the folder names in the archiving profiles, this &lt;em&gt;will&lt;&#x2F;em&gt; cause duplicates to be created. I would recommend using the defaults, or at least, be sure to get it right.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;do-not-delete-messages-from-the-source-until-you-re-done&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#do-not-delete-messages-from-the-source-until-you-re-done&quot; aria-label=&quot;Anchor link for: do-not-delete-messages-from-the-source-until-you-re-done&quot;&gt;🔗&lt;&#x2F;a&gt;Do not delete messages from the source until you&#x27;re done&lt;&#x2F;h4&gt;
&lt;p&gt;While it might seem like you could save some time by having MailStore delete the source messages during each archiving profile execution so that you do not need to re-scan all messages that have already been archived, this is not recommended as it has an unexpected consequence.&lt;&#x2F;p&gt;
&lt;p&gt;The important thing to understand is that MailStore does not have any concept of your domain or any way to determine what is a local user or non-local user. MailStore just has the list of currently-licensed users and their e-mail addresses. Imagine we have &lt;code&gt;frank@example.com&lt;&#x2F;code&gt; created, but &lt;code&gt;bob@example.com&lt;&#x2F;code&gt; has not been created yet and then archive with the option to delete messages enabled, here is what will happen:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;The first message is from &lt;code&gt;noreply@mailstore.com&lt;&#x2F;code&gt; and to &lt;code&gt;frank@example.com&lt;&#x2F;code&gt;, so it gets archived, and deleted. Great, this is what we want.&lt;&#x2F;li&gt;
&lt;li&gt;The second message is from &lt;code&gt;noreply@mailstore.com&lt;&#x2F;code&gt; and to &lt;code&gt;bob@example.com&lt;&#x2F;code&gt;, so it gets skipped and logged, but not deleted. Great, this is what we want.&lt;&#x2F;li&gt;
&lt;li&gt;The third message is from &lt;code&gt;frank@example.com&lt;&#x2F;code&gt; and to &lt;code&gt;bob@example.com&lt;&#x2F;code&gt;, so it gets archived to &lt;code&gt;frank@example.com&lt;&#x2F;code&gt; only -- This message is successfully archived, therefore if the delete option is enabled the message is deleted. When you later create &lt;code&gt;bob@example.com&lt;&#x2F;code&gt; the message is already gone from the source and therefore is never archived into into &lt;code&gt;bob@example.com&lt;&#x2F;code&gt; at all.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;You will likely not even notice that &lt;code&gt;bob@example.com&lt;&#x2F;code&gt; is missing the messages, but even if noticed there is no way to find and fix this later. The message is not lost, it is in &lt;code&gt;frank&lt;&#x2F;code&gt;&#x27;s archive, but this can cause problems when reviewing just &lt;code&gt;bob&lt;&#x2F;code&gt;&#x27;s archive later.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Extracting unknown e-mail addresses from journal-type profile&#x27;s debug log via Excel</title>
        <published>2023-01-21T00:00:00+00:00</published>
        <updated>2023-01-21T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              dave
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://mailstore-notes.dwlab.me/articles/ServerUnmappableException/excel/"/>
        <id>https://mailstore-notes.dwlab.me/articles/ServerUnmappableException/excel/</id>
        
        <content type="html" xml:base="https://mailstore-notes.dwlab.me/articles/ServerUnmappableException/excel/">&lt;h2 id=&quot;preface&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#preface&quot; aria-label=&quot;Anchor link for: preface&quot;&gt;🔗&lt;&#x2F;a&gt;Preface&lt;&#x2F;h2&gt;
&lt;p&gt;This is part of a larger set of steps to set up a fresh MailStore Server and migrate messages from another archiving platform where the list of older users is not known.&lt;&#x2F;p&gt;
&lt;p&gt;This article just covers the steps to use Excel and the Windows Command Line to get the e-mail addresses, &lt;a href=&quot;https:&#x2F;&#x2F;mailstore-notes.dwlab.me&#x2F;articles&#x2F;ServerUnmappableException&#x2F;&quot;&gt;the full process is described here&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;You could do this by hand using Excel as well although this has a lot more individual steps.&lt;&#x2F;p&gt;
&lt;p&gt;There are multiple ways to accomplish this, including using scripting, but I will attempt to provide easy-to-understand steps that allow you to see each step, and no scripting is required. Here is what I have done in the past:&lt;&#x2F;p&gt;
&lt;p&gt;Start with Windows&#x27; &lt;em&gt;find.exe&lt;&#x2F;em&gt; command to filter the log to just the relevant lines:&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;cmd&quot; class=&quot;language-cmd &quot;&gt;&lt;code class=&quot;language-cmd&quot; data-lang=&quot;cmd&quot;&gt;find &amp;quot;MailStore.Common.Interfaces.ServerUnmappableException&amp;quot; &amp;lt; *.log &amp;gt; userlist.txt
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;ul&gt;
&lt;li&gt;Open the resulting file in Excel.&lt;&#x2F;li&gt;
&lt;li&gt;Use &lt;em&gt;Data&lt;&#x2F;em&gt; -&amp;gt; &lt;em&gt;Text to Columns&lt;&#x2F;em&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Select &lt;em&gt;Delimited&lt;&#x2F;em&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Set Delimiters to both &quot;Comma&quot; and &quot;Space&quot; only.&lt;&#x2F;li&gt;
&lt;li&gt;Enable &lt;em&gt;Treat consecutive delimiters as one&lt;&#x2F;em&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Click &lt;em&gt;Finish&lt;&#x2F;em&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Look for the columns that contains e-mail addresses at the end of each line. This should start at &lt;em&gt;AA&lt;&#x2F;em&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Copy the results and paste to a new sheet.&lt;&#x2F;li&gt;
&lt;li&gt;Repeat for each column that has further e-mail addresses. There may be more than &lt;em&gt;AA&lt;&#x2F;em&gt; and &lt;em&gt;AB&lt;&#x2F;em&gt; as e-mail can have more than a single sender&#x2F;recipient pair per message. Remember there may be lines that have no 3rd address followed by more lines that have a 3rd address, but if you miss any there is an opportunity to catch them later.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Now switch to the new sheet.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Use &lt;em&gt;Data&lt;&#x2F;em&gt; --&amp;gt; &lt;em&gt;Remove Duplicates&lt;&#x2F;em&gt; to clean up the list.&lt;&#x2F;li&gt;
&lt;li&gt;Insert a blank row at the top.&lt;&#x2F;li&gt;
&lt;li&gt;Enable &lt;em&gt;Data&lt;&#x2F;em&gt; --&amp;gt; &lt;em&gt;Filter&lt;&#x2F;em&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Click the down arrow on the top line to modify the filter.&lt;&#x2F;li&gt;
&lt;li&gt;Type &lt;code&gt;example.com&lt;&#x2F;code&gt; in the &lt;em&gt;search&lt;&#x2F;em&gt; field and press enter.&lt;&#x2F;li&gt;
&lt;li&gt;Copy the results and save it as &lt;code&gt;userlist.txt&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Extracting unknown e-mail addresses from journal-type profile&#x27;s debug log via Linux_WSL</title>
        <published>2023-01-21T00:00:00+00:00</published>
        <updated>2023-01-21T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              dave
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://mailstore-notes.dwlab.me/articles/ServerUnmappableException/linux_wsl/"/>
        <id>https://mailstore-notes.dwlab.me/articles/ServerUnmappableException/linux_wsl/</id>
        
        <content type="html" xml:base="https://mailstore-notes.dwlab.me/articles/ServerUnmappableException/linux_wsl/">&lt;h2 id=&quot;preface&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#preface&quot; aria-label=&quot;Anchor link for: preface&quot;&gt;🔗&lt;&#x2F;a&gt;Preface&lt;&#x2F;h2&gt;
&lt;p&gt;This is part of a larger set of steps to set up a fresh MailStore Server and migrate messages from another archiving platform where the list of older users is not known.&lt;&#x2F;p&gt;
&lt;p&gt;This article just covers the steps to use WSL (Windows Subsystem for Linux) to get the e-mail addresses, &lt;a href=&quot;https:&#x2F;&#x2F;mailstore-notes.dwlab.me&#x2F;articles&#x2F;ServerUnmappableException&#x2F;&quot;&gt;the full process is described here&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;linux-bash-command-line&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#linux-bash-command-line&quot; aria-label=&quot;Anchor link for: linux-bash-command-line&quot;&gt;🔗&lt;&#x2F;a&gt;Linux &#x2F; bash command line&lt;&#x2F;h2&gt;
&lt;p&gt;From here we need to extract the e-mail addresses that match your users. If you are comfortable at a Linux command line we can do this easily:&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;bash&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;grep --only-matching --no-filename --extended-regex &amp;quot;[^ ]+@example\.com\b&amp;quot; *.log | sort | uniq &amp;gt; userlist.txt
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;If completed this way, move ahead to &lt;strong&gt;Create the users&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;wsl-windows-subsystem-for-linux&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#wsl-windows-subsystem-for-linux&quot; aria-label=&quot;Anchor link for: wsl-windows-subsystem-for-linux&quot;&gt;🔗&lt;&#x2F;a&gt;WSL (Windows Subsystem for Linux)&lt;&#x2F;h2&gt;
&lt;p&gt;Installing and learning WSL is out of scope for this article, but if you already have WSL on a machine that you can use, then from &lt;code&gt;cmd.exe&lt;&#x2F;code&gt; you can call WSL and convert the debug log into the needed text-file format like this:&lt;&#x2F;p&gt;
&lt;pre data-lang=&quot;cmd&quot; class=&quot;language-cmd &quot;&gt;&lt;code class=&quot;language-cmd&quot; data-lang=&quot;cmd&quot;&gt;wsl grep --only-matching --no-filename --extended-regex &amp;quot;[^ ]+@example\.com\b&amp;quot; *.log ^| sort ^| uniq &amp;gt; userlist.txt
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;If completed this way, move ahead to &lt;em&gt;Create the users&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
</content>
        
    </entry>
</feed>
