mirror of
https://github.com/domainaware/parsedmarc.git
synced 2026-08-18 05:03:19 +00:00
5.1.2
This commit is contained in:
+3
-3
@@ -8,7 +8,7 @@
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>Overview: module code — parsedmarc 5.1.1 documentation</title>
|
||||
<title>Overview: module code — parsedmarc 5.1.2 documentation</title>
|
||||
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
|
||||
|
||||
<div class="version">
|
||||
5.1.1
|
||||
5.1.2
|
||||
</div>
|
||||
|
||||
|
||||
@@ -179,7 +179,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT:'../',
|
||||
VERSION:'5.1.1',
|
||||
VERSION:'5.1.2',
|
||||
LANGUAGE:'None',
|
||||
COLLAPSE_INDEX:false,
|
||||
FILE_SUFFIX:'.html',
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>parsedmarc — parsedmarc 5.1.1 documentation</title>
|
||||
<title>parsedmarc — parsedmarc 5.1.2 documentation</title>
|
||||
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
|
||||
|
||||
<div class="version">
|
||||
5.1.1
|
||||
5.1.2
|
||||
</div>
|
||||
|
||||
|
||||
@@ -183,7 +183,7 @@
|
||||
<span class="kn">from</span> <span class="nn">parsedmarc.utils</span> <span class="k">import</span> <span class="n">timestamp_to_human</span><span class="p">,</span> <span class="n">human_timestamp_to_datetime</span>
|
||||
<span class="kn">from</span> <span class="nn">parsedmarc.utils</span> <span class="k">import</span> <span class="n">parse_email</span>
|
||||
|
||||
<span class="n">__version__</span> <span class="o">=</span> <span class="s2">"5.1.1"</span>
|
||||
<span class="n">__version__</span> <span class="o">=</span> <span class="s2">"5.1.2"</span>
|
||||
|
||||
<span class="n">logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s2">"parsedmarc"</span><span class="p">)</span>
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"parsedmarc v</span><span class="si">{0}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">__version__</span><span class="p">))</span>
|
||||
@@ -1316,6 +1316,35 @@
|
||||
<span class="k">return</span> <span class="n">results</span>
|
||||
<span class="k">except</span> <span class="n">imapclient</span><span class="o">.</span><span class="n">exceptions</span><span class="o">.</span><span class="n">IMAPClientError</span> <span class="k">as</span> <span class="n">error</span><span class="p">:</span>
|
||||
<span class="n">error</span> <span class="o">=</span> <span class="n">error</span><span class="o">.</span><span class="fm">__str__</span><span class="p">()</span><span class="o">.</span><span class="n">lstrip</span><span class="p">(</span><span class="s2">"b'"</span><span class="p">)</span><span class="o">.</span><span class="n">rstrip</span><span class="p">(</span><span class="s2">"'"</span><span class="p">)</span><span class="o">.</span><span class="n">rstrip</span><span class="p">(</span><span class="s2">"."</span><span class="p">)</span>
|
||||
<span class="c1"># Workaround for random Exchange/Office365 IMAP errors</span>
|
||||
<span class="k">if</span> <span class="s2">"Server Unavailable"</span> <span class="ow">in</span> <span class="n">error</span> <span class="ow">or</span> <span class="s2">"BAD"</span> <span class="ow">in</span> <span class="n">error</span><span class="p">:</span>
|
||||
<span class="n">sleep_minutes</span> <span class="o">=</span> <span class="mi">5</span>
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span>
|
||||
<span class="s2">"Received Server Unavailable response"</span>
|
||||
<span class="s2">"Waiting </span><span class="si">{0}</span><span class="s2"> minutes before trying again"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
|
||||
<span class="n">sleep_minutes</span><span class="p">))</span>
|
||||
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="n">sleep_minutes</span> <span class="o">*</span> <span class="mi">60</span><span class="p">)</span>
|
||||
<span class="n">results</span> <span class="o">=</span> <span class="n">get_dmarc_reports_from_inbox</span><span class="p">(</span>
|
||||
<span class="n">host</span><span class="o">=</span><span class="n">host</span><span class="p">,</span>
|
||||
<span class="n">user</span><span class="o">=</span><span class="n">user</span><span class="p">,</span>
|
||||
<span class="n">password</span><span class="o">=</span><span class="n">password</span><span class="p">,</span>
|
||||
<span class="n">connection</span><span class="o">=</span><span class="n">connection</span><span class="p">,</span>
|
||||
<span class="n">port</span><span class="o">=</span><span class="n">port</span><span class="p">,</span>
|
||||
<span class="n">ssl</span><span class="o">=</span><span class="n">ssl</span><span class="p">,</span>
|
||||
<span class="n">ssl_context</span><span class="o">=</span><span class="n">ssl_context</span><span class="p">,</span>
|
||||
<span class="n">move_supported</span><span class="o">=</span><span class="n">move_supported</span><span class="p">,</span>
|
||||
<span class="n">reports_folder</span><span class="o">=</span><span class="n">reports_folder</span><span class="p">,</span>
|
||||
<span class="n">archive_folder</span><span class="o">=</span><span class="n">archive_folder</span><span class="p">,</span>
|
||||
<span class="n">delete</span><span class="o">=</span><span class="n">delete</span><span class="p">,</span>
|
||||
<span class="n">test</span><span class="o">=</span><span class="n">test</span><span class="p">,</span>
|
||||
<span class="n">nameservers</span><span class="o">=</span><span class="n">nameservers</span><span class="p">,</span>
|
||||
<span class="n">dns_timeout</span><span class="o">=</span><span class="n">dns_timeout</span><span class="p">,</span>
|
||||
<span class="n">strip_attachment_payloads</span><span class="o">=</span><span class="n">strip_attachment_payloads</span><span class="p">,</span>
|
||||
<span class="n">results</span><span class="o">=</span><span class="n">results</span>
|
||||
<span class="p">)</span>
|
||||
|
||||
<span class="k">return</span> <span class="n">results</span>
|
||||
|
||||
<span class="k">raise</span> <span class="n">IMAPError</span><span class="p">(</span><span class="n">error</span><span class="p">)</span>
|
||||
<span class="k">except</span> <span class="n">socket</span><span class="o">.</span><span class="n">gaierror</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="n">IMAPError</span><span class="p">(</span><span class="s2">"DNS resolution failed"</span><span class="p">)</span>
|
||||
@@ -1578,7 +1607,7 @@
|
||||
<span class="k">except</span> <span class="n">imapclient</span><span class="o">.</span><span class="n">exceptions</span><span class="o">.</span><span class="n">IMAPClientError</span> <span class="k">as</span> <span class="n">error</span><span class="p">:</span>
|
||||
<span class="n">error</span> <span class="o">=</span> <span class="n">error</span><span class="o">.</span><span class="fm">__str__</span><span class="p">()</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">"b'"</span><span class="p">,</span> <span class="s2">""</span><span class="p">)</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">"'"</span><span class="p">,</span> <span class="s2">""</span><span class="p">)</span>
|
||||
<span class="c1"># Workaround for random Exchange/Office365 IMAP errors</span>
|
||||
<span class="k">if</span> <span class="s2">"Server Unavailable. 15"</span> <span class="ow">in</span> <span class="n">error</span> <span class="ow">or</span> <span class="s2">"BAD"</span> <span class="ow">in</span> <span class="n">error</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="s2">"Server Unavailable"</span> <span class="ow">in</span> <span class="n">error</span> <span class="ow">or</span> <span class="s2">"BAD"</span> <span class="ow">in</span> <span class="n">error</span><span class="p">:</span>
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"IMAP error: </span><span class="si">{0}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">error</span><span class="p">))</span>
|
||||
<span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Reconnecting watcher"</span><span class="p">)</span>
|
||||
<span class="n">server</span> <span class="o">=</span> <span class="n">imapclient</span><span class="o">.</span><span class="n">IMAPClient</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
|
||||
@@ -1816,7 +1845,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT:'../',
|
||||
VERSION:'5.1.1',
|
||||
VERSION:'5.1.2',
|
||||
LANGUAGE:'None',
|
||||
COLLAPSE_INDEX:false,
|
||||
FILE_SUFFIX:'.html',
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>parsedmarc.elastic — parsedmarc 5.1.1 documentation</title>
|
||||
<title>parsedmarc.elastic — parsedmarc 5.1.2 documentation</title>
|
||||
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
|
||||
|
||||
<div class="version">
|
||||
5.1.1
|
||||
5.1.2
|
||||
</div>
|
||||
|
||||
|
||||
@@ -662,7 +662,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT:'../../',
|
||||
VERSION:'5.1.1',
|
||||
VERSION:'5.1.2',
|
||||
LANGUAGE:'None',
|
||||
COLLAPSE_INDEX:false,
|
||||
FILE_SUFFIX:'.html',
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>parsedmarc.splunk — parsedmarc 5.1.1 documentation</title>
|
||||
<title>parsedmarc.splunk — parsedmarc 5.1.2 documentation</title>
|
||||
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
|
||||
|
||||
<div class="version">
|
||||
5.1.1
|
||||
5.1.2
|
||||
</div>
|
||||
|
||||
|
||||
@@ -338,7 +338,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT:'../../',
|
||||
VERSION:'5.1.1',
|
||||
VERSION:'5.1.2',
|
||||
LANGUAGE:'None',
|
||||
COLLAPSE_INDEX:false,
|
||||
FILE_SUFFIX:'.html',
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>parsedmarc.utils — parsedmarc 5.1.1 documentation</title>
|
||||
<title>parsedmarc.utils — parsedmarc 5.1.2 documentation</title>
|
||||
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
|
||||
|
||||
<div class="version">
|
||||
5.1.1
|
||||
5.1.2
|
||||
</div>
|
||||
|
||||
|
||||
@@ -711,7 +711,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT:'../../',
|
||||
VERSION:'5.1.1',
|
||||
VERSION:'5.1.2',
|
||||
LANGUAGE:'None',
|
||||
COLLAPSE_INDEX:false,
|
||||
FILE_SUFFIX:'.html',
|
||||
|
||||
+20
-20
@@ -396,7 +396,7 @@ Installation
|
||||
::
|
||||
|
||||
http_proxy=http://user:password@prox-server:3128
|
||||
https_proxy=http://user:password@prox-server:3128
|
||||
https_proxy=https://user:password@prox-server:3128
|
||||
ftp_proxy=http://user:password@prox-server:3128
|
||||
|
||||
Or if no credentials are needed:
|
||||
@@ -424,15 +424,15 @@ On Debian or Ubuntu systems, run:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ sudo apt-get install python3-pip
|
||||
sudo apt-get install python3-pip
|
||||
|
||||
|
||||
On CentOS systems, run:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ sudo yum install -y python34-setuptools
|
||||
$ sudo easy_install-3.4 pip
|
||||
sudo yum install -y python34-setuptools
|
||||
sudo easy_install-3.4 pip
|
||||
|
||||
Python 3 installers for Windows and macOS can be found at
|
||||
https://www.python.org/downloads/
|
||||
@@ -442,13 +442,13 @@ macOS or Linux, run
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ sudo -H pip3 install -U parsedmarc
|
||||
sudo -H pip3 install -U parsedmarc
|
||||
|
||||
Or, install the latest development release directly from GitHub:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ sudo -H pip3 install -U git+https://github.com/domainaware/parsedmarc.git
|
||||
sudo -H pip3 install -U git+https://github.com/domainaware/parsedmarc.git
|
||||
|
||||
.. note::
|
||||
|
||||
@@ -460,52 +460,52 @@ Or, install the latest development release directly from GitHub:
|
||||
Installation using pypy3
|
||||
------------------------
|
||||
|
||||
For the best possible processing speed, consider using `parsedmarc` inside a ``pypy3``
|
||||
For the best possible processing speed, consider using ``parsedmarc`` inside a ``pypy3``
|
||||
virtualenv. First, `download the latest version of pypy3`_. Extract it to
|
||||
``/opt/pypy3`` (``sudo mkdir /opt`` if ``/opt`` does not exist), then create a
|
||||
symlink:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ sudo ln -s /opt/pypy3/bin/pypy3 /usr/local/bin/pypy3
|
||||
sudo ln -s /opt/pypy3/bin/pypy3 /usr/local/bin/pypy3
|
||||
|
||||
Install ``virtualenv`` on your system:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ sudo apt-get install python3-pip
|
||||
$ sudo -H pip3 install -U virtualenv
|
||||
sudo apt-get install python3-pip
|
||||
sudo -H pip3 install -U virtualenv
|
||||
|
||||
Uninstall any instance of ``parsedmarc`` that you may have installed globally
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ sudo -H pip3 uninstall -y parsedmarc
|
||||
sudo -H pip3 uninstall -y parsedmarc
|
||||
|
||||
Next, create a ``pypy3`` virtualenv for parsedmarc
|
||||
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ sudo mkdir /opt/venvs
|
||||
$ cd /opt/venvs
|
||||
$ sudo -H pip3 install -U virtualenv
|
||||
$ sudo virtualenv --download -p /usr/local/bin/pypy3 parsedmarc
|
||||
$ sudo -H /opt/venvs/parsedmarc/bin/pip3 install -U parsedmarc
|
||||
$ sudo ln -s /opt/venvs/parsedmarc/bin/parsedmarc /usr/local/bin/parsedmarc
|
||||
sudo mkdir /opt/venvs
|
||||
cd /opt/venvs
|
||||
sudo -H pip3 install -U virtualenv
|
||||
sudo virtualenv --download -p /usr/local/bin/pypy3 parsedmarc
|
||||
sudo -H /opt/venvs/parsedmarc/bin/pip3 install -U parsedmarc
|
||||
sudo ln -s /opt/venvs/parsedmarc/bin/parsedmarc /usr/local/bin/parsedmarc
|
||||
|
||||
To upgrade ``parsedmarc`` inside the virtualenv, run:
|
||||
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ sudo -H /opt/venvs/parsedmarc/bin/pip3 install -U parsedmarc
|
||||
sudo -H /opt/venvs/parsedmarc/bin/pip3 install -U parsedmarc
|
||||
|
||||
Or, install the latest development release directly from GitHub:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ sudo -H /opt/venvs/parsedmarc/bin/pip3 install -U git+https://github.com/domainaware/parsedmarc.git
|
||||
sudo -H /opt/venvs/parsedmarc/bin/pip3 install -U git+https://github.com/domainaware/parsedmarc.git
|
||||
|
||||
Optional dependencies
|
||||
---------------------
|
||||
@@ -517,7 +517,7 @@ On Debian or Ubuntu systems, run:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ sudo apt-get install libemail-outlook-message-perl
|
||||
sudo apt-get install libemail-outlook-message-perl
|
||||
|
||||
|
||||
DNS performance
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
|
||||
VERSION: '5.1.1',
|
||||
VERSION: '5.1.2',
|
||||
LANGUAGE: 'None',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
|
||||
+3
-3
@@ -9,7 +9,7 @@
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>Index — parsedmarc 5.1.1 documentation</title>
|
||||
<title>Index — parsedmarc 5.1.2 documentation</title>
|
||||
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
|
||||
|
||||
<div class="version">
|
||||
5.1.1
|
||||
5.1.2
|
||||
</div>
|
||||
|
||||
|
||||
@@ -390,7 +390,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT:'./',
|
||||
VERSION:'5.1.1',
|
||||
VERSION:'5.1.2',
|
||||
LANGUAGE:'None',
|
||||
COLLAPSE_INDEX:false,
|
||||
FILE_SUFFIX:'.html',
|
||||
|
||||
+23
-23
@@ -8,7 +8,7 @@
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>parsedmarc documentation - Open source DMARC report analyzer and visualizer — parsedmarc 5.1.1 documentation</title>
|
||||
<title>parsedmarc documentation - Open source DMARC report analyzer and visualizer — parsedmarc 5.1.2 documentation</title>
|
||||
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
|
||||
|
||||
<div class="version">
|
||||
5.1.1
|
||||
5.1.2
|
||||
</div>
|
||||
|
||||
|
||||
@@ -563,7 +563,7 @@ schema.</p>
|
||||
to use that proxy. To do this, edit <code class="docutils literal notranslate"><span class="pre">/etc/environment</span></code> and add your
|
||||
proxy details there, for example:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">http_proxy</span><span class="o">=</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">user</span><span class="p">:</span><span class="n">password</span><span class="nd">@prox</span><span class="o">-</span><span class="n">server</span><span class="p">:</span><span class="mi">3128</span>
|
||||
<span class="n">https_proxy</span><span class="o">=</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">user</span><span class="p">:</span><span class="n">password</span><span class="nd">@prox</span><span class="o">-</span><span class="n">server</span><span class="p">:</span><span class="mi">3128</span>
|
||||
<span class="n">https_proxy</span><span class="o">=</span><span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">user</span><span class="p">:</span><span class="n">password</span><span class="nd">@prox</span><span class="o">-</span><span class="n">server</span><span class="p">:</span><span class="mi">3128</span>
|
||||
<span class="n">ftp_proxy</span><span class="o">=</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">user</span><span class="p">:</span><span class="n">password</span><span class="nd">@prox</span><span class="o">-</span><span class="n">server</span><span class="p">:</span><span class="mi">3128</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
@@ -587,23 +587,23 @@ least:</p>
|
||||
</ul>
|
||||
</div>
|
||||
<p>On Debian or Ubuntu systems, run:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ sudo apt-get install python3-pip
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo apt-get install python3-pip
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>On CentOS systems, run:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ sudo yum install -y python34-setuptools
|
||||
$ sudo easy_install-3.4 pip
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo yum install -y python34-setuptools
|
||||
sudo easy_install-3.4 pip
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Python 3 installers for Windows and macOS can be found at
|
||||
<a class="reference external" href="https://www.python.org/downloads/">https://www.python.org/downloads/</a></p>
|
||||
<p>To install or upgrade to the latest stable release of <code class="docutils literal notranslate"><span class="pre">parsedmarc</span></code> on
|
||||
macOS or Linux, run</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ sudo -H pip3 install -U parsedmarc
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo -H pip3 install -U parsedmarc
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Or, install the latest development release directly from GitHub:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ sudo -H pip3 install -U git+https://github.com/domainaware/parsedmarc.git
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo -H pip3 install -U git+https://github.com/domainaware/parsedmarc.git
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="admonition note">
|
||||
@@ -614,37 +614,37 @@ above commands.</p>
|
||||
</div>
|
||||
<div class="section" id="installation-using-pypy3">
|
||||
<h3>Installation using pypy3<a class="headerlink" href="#installation-using-pypy3" title="Permalink to this headline">¶</a></h3>
|
||||
<p>For the best possible processing speed, consider using <cite>parsedmarc</cite> inside a <code class="docutils literal notranslate"><span class="pre">pypy3</span></code>
|
||||
<p>For the best possible processing speed, consider using <code class="docutils literal notranslate"><span class="pre">parsedmarc</span></code> inside a <code class="docutils literal notranslate"><span class="pre">pypy3</span></code>
|
||||
virtualenv. First, <a class="reference external" href="https://pypy.org/download.html#default-with-a-jit-compiler">download the latest version of pypy3</a>. Extract it to
|
||||
<code class="docutils literal notranslate"><span class="pre">/opt/pypy3</span></code> (<code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">mkdir</span> <span class="pre">/opt</span></code> if <code class="docutils literal notranslate"><span class="pre">/opt</span></code> does not exist), then create a
|
||||
symlink:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ sudo ln -s /opt/pypy3/bin/pypy3 /usr/local/bin/pypy3
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo ln -s /opt/pypy3/bin/pypy3 /usr/local/bin/pypy3
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Install <code class="docutils literal notranslate"><span class="pre">virtualenv</span></code> on your system:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ sudo apt-get install python3-pip
|
||||
$ sudo -H pip3 install -U virtualenv
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo apt-get install python3-pip
|
||||
sudo -H pip3 install -U virtualenv
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Uninstall any instance of <code class="docutils literal notranslate"><span class="pre">parsedmarc</span></code> that you may have installed globally</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ sudo -H pip3 uninstall -y parsedmarc
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo -H pip3 uninstall -y parsedmarc
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Next, create a <code class="docutils literal notranslate"><span class="pre">pypy3</span></code> virtualenv for parsedmarc</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ sudo mkdir /opt/venvs
|
||||
$ <span class="nb">cd</span> /opt/venvs
|
||||
$ sudo -H pip3 install -U virtualenv
|
||||
$ sudo virtualenv --download -p /usr/local/bin/pypy3 parsedmarc
|
||||
$ sudo -H /opt/venvs/parsedmarc/bin/pip3 install -U parsedmarc
|
||||
$ sudo ln -s /opt/venvs/parsedmarc/bin/parsedmarc /usr/local/bin/parsedmarc
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo mkdir /opt/venvs
|
||||
<span class="nb">cd</span> /opt/venvs
|
||||
sudo -H pip3 install -U virtualenv
|
||||
sudo virtualenv --download -p /usr/local/bin/pypy3 parsedmarc
|
||||
sudo -H /opt/venvs/parsedmarc/bin/pip3 install -U parsedmarc
|
||||
sudo ln -s /opt/venvs/parsedmarc/bin/parsedmarc /usr/local/bin/parsedmarc
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>To upgrade <code class="docutils literal notranslate"><span class="pre">parsedmarc</span></code> inside the virtualenv, run:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ sudo -H /opt/venvs/parsedmarc/bin/pip3 install -U parsedmarc
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo -H /opt/venvs/parsedmarc/bin/pip3 install -U parsedmarc
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Or, install the latest development release directly from GitHub:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ sudo -H /opt/venvs/parsedmarc/bin/pip3 install -U git+https://github.com/domainaware/parsedmarc.git
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo -H /opt/venvs/parsedmarc/bin/pip3 install -U git+https://github.com/domainaware/parsedmarc.git
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -653,7 +653,7 @@ $ sudo ln -s /opt/venvs/parsedmarc/bin/parsedmarc /usr/local/bin/parsedmarc
|
||||
<p>If you would like to be able to parse emails saved from Microsoft Outlook
|
||||
(i.e. OLE .msg files), install <code class="docutils literal notranslate"><span class="pre">msgconvert</span></code>:</p>
|
||||
<p>On Debian or Ubuntu systems, run:</p>
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ sudo apt-get install libemail-outlook-message-perl
|
||||
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo apt-get install libemail-outlook-message-perl
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -2135,7 +2135,7 @@ country associated with the given IPv4 or IPv6 address</p>
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT:'./',
|
||||
VERSION:'5.1.1',
|
||||
VERSION:'5.1.2',
|
||||
LANGUAGE:'None',
|
||||
COLLAPSE_INDEX:false,
|
||||
FILE_SUFFIX:'.html',
|
||||
|
||||
BIN
Binary file not shown.
+3
-3
@@ -8,7 +8,7 @@
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>Python Module Index — parsedmarc 5.1.1 documentation</title>
|
||||
<title>Python Module Index — parsedmarc 5.1.2 documentation</title>
|
||||
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
|
||||
|
||||
<div class="version">
|
||||
5.1.1
|
||||
5.1.2
|
||||
</div>
|
||||
|
||||
|
||||
@@ -210,7 +210,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT:'./',
|
||||
VERSION:'5.1.1',
|
||||
VERSION:'5.1.2',
|
||||
LANGUAGE:'None',
|
||||
COLLAPSE_INDEX:false,
|
||||
FILE_SUFFIX:'.html',
|
||||
|
||||
+3
-3
@@ -8,7 +8,7 @@
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>Search — parsedmarc 5.1.1 documentation</title>
|
||||
<title>Search — parsedmarc 5.1.2 documentation</title>
|
||||
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
|
||||
|
||||
<div class="version">
|
||||
5.1.1
|
||||
5.1.2
|
||||
</div>
|
||||
|
||||
|
||||
@@ -188,7 +188,7 @@
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT:'./',
|
||||
VERSION:'5.1.1',
|
||||
VERSION:'5.1.2',
|
||||
LANGUAGE:'None',
|
||||
COLLAPSE_INDEX:false,
|
||||
FILE_SUFFIX:'.html',
|
||||
|
||||
Reference in New Issue
Block a user