This file is indexed.

/usr/share/doc/python3-aiosmtpd/html/concepts.html is in python3-aiosmtpd 1.1-5.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Concepts &#8212; aiosmtpd 1.1 documentation</title>
    <link rel="stylesheet" href="../../_static/classic.css" type="text/css" />
    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../../',
        VERSION:     '1.1',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true,
        SOURCELINK_SUFFIX: '.txt'
      };
    </script>
    <script type="text/javascript" src="../../_static/jquery.js"></script>
    <script type="text/javascript" src="../../_static/underscore.js"></script>
    <script type="text/javascript" src="../../_static/doctools.js"></script>
    <link rel="index" title="Index" href="../../genindex.html" />
    <link rel="search" title="Search" href="../../search.html" />
    <link rel="next" title="Command line usage" href="cli.html" />
    <link rel="prev" title="Introduction" href="intro.html" /> 
  </head>
  <body>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="cli.html" title="Command line usage"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="intro.html" title="Introduction"
             accesskey="P">previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="../../README.html">aiosmtpd 1.1 documentation</a> &#187;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <div class="section" id="concepts">
<h1>Concepts<a class="headerlink" href="#concepts" title="Permalink to this headline"></a></h1>
<p>There are two general ways you can run the SMTP server, via the <a class="reference internal" href="../../debian/python3-aiosmtpd/usr/lib/python3.6/dist-packages/aiosmtpd/docs/cli.html#cli"><span class="std std-ref">command
line</span></a> or <a class="reference internal" href="../../debian/python3-aiosmtpd/usr/lib/python3.6/dist-packages/aiosmtpd/docs/controller.html#controller"><span class="std std-ref">programmatically</span></a>.</p>
<p>There are several dimensions in which you can extend the basic functionality
of the SMTP server.  You can implement an <em>event handler</em> which uses well
defined <a class="reference internal" href="../../debian/python3-aiosmtpd/usr/lib/python3.6/dist-packages/aiosmtpd/docs/handlers.html#hooks"><span class="std std-ref">handler hooks</span></a> that are called during the various steps
in the SMTP dialog.  If such a hook is implemented, it assumes responsibility
for the status messages returned to the client.</p>
<p>You can also <a class="reference internal" href="../../debian/python3-aiosmtpd/usr/lib/python3.6/dist-packages/aiosmtpd/docs/smtp.html#subclass"><span class="std std-ref">subclass</span></a> the core <code class="docutils literal"><span class="pre">SMTP</span></code> class to implement
new commands, or change the semantics of existing commands.</p>
<p>For example, if you wanted to print the received message on the console, you
could implement a handler that hooks into the <code class="docutils literal"><span class="pre">DATA</span></code> command.  The contents
of the message will be available on one of the hook’s arguments, and your
handler could print this content to stdout.</p>
<p>On the other hand, if you wanted to implement an SMTP-like server that adds a
new command called <code class="docutils literal"><span class="pre">PING</span></code>, you would do this by subclassing <code class="docutils literal"><span class="pre">SMTP</span></code>, adding
a method that implements whatever semantics for <code class="docutils literal"><span class="pre">PING</span></code> that you want.</p>
<div class="section" id="sessions-and-envelopes">
<span id="id1"></span><h2>Sessions and envelopes<a class="headerlink" href="#sessions-and-envelopes" title="Permalink to this headline"></a></h2>
<p>Two classes are used during the SMTP dialog with clients.  Instances of these
are passed to the handler hooks.</p>
<div class="section" id="session">
<h3>Session<a class="headerlink" href="#session" title="Permalink to this headline"></a></h3>
<p>The session represents the state built up during a client’s socket connection
to the server.  Each time a client connects to the server, a new session
object is created.</p>
<dl class="class">
<dt id="Session">
<em class="property">class </em><code class="descname">Session</code><a class="headerlink" href="#Session" title="Permalink to this definition"></a></dt>
<dd><dl class="attribute">
<dt id="Session.peer">
<code class="descname">peer</code><a class="headerlink" href="#Session.peer" title="Permalink to this definition"></a></dt>
<dd><p>Defaulting to None, this attribute will contain the transport’s socket’s
<a class="reference external" href="https://docs.python.org/3/library/asyncio-protocol.html?highlight=peername#asyncio.BaseTransport.get_extra_info">peername</a> value.</p>
</dd></dl>

<dl class="attribute">
<dt id="Session.ssl">
<code class="descname">ssl</code><a class="headerlink" href="#Session.ssl" title="Permalink to this definition"></a></dt>
<dd><p>Defaulting to None, this attribute will contain some extra information,
as a dictionary, from the <code class="docutils literal"><span class="pre">asyncio.sslproto.SSLProtocol</span></code> instance.
This dictionary provides additional information about the connection.
It contains implementation-specific information so its contents may
change, but it should roughly correspond to the information available
through <a class="reference external" href="https://docs.python.org/3/library/asyncio-protocol.html?highlight=get_extra_info#asyncio.BaseTransport.get_extra_info">this method</a>.</p>
</dd></dl>

<dl class="attribute">
<dt id="Session.host_name">
<code class="descname">host_name</code><a class="headerlink" href="#Session.host_name" title="Permalink to this definition"></a></dt>
<dd><p>Defaulting to None, this attribute will contain the host name argument
as seen in the <code class="docutils literal"><span class="pre">HELO</span></code> or <code class="docutils literal"><span class="pre">EHLO</span></code> (or for <a class="reference internal" href="../../debian/python3-aiosmtpd/usr/lib/python3.6/dist-packages/aiosmtpd/docs/lmtp.html#lmtp"><span class="std std-ref">LMTP</span></a>, the
<code class="docutils literal"><span class="pre">LHLO</span></code>) command.</p>
</dd></dl>

<dl class="attribute">
<dt id="Session.extended_smtp">
<code class="descname">extended_smtp</code><a class="headerlink" href="#Session.extended_smtp" title="Permalink to this definition"></a></dt>
<dd><p>Defaulting to False, this flag will be True when the <code class="docutils literal"><span class="pre">EHLO</span></code> greeting
was seen, indicating <a class="reference external" href="http://www.faqs.org/rfcs/rfc1869.html">ESMTP</a>.</p>
</dd></dl>

<dl class="attribute">
<dt id="Session.loop">
<code class="descname">loop</code><a class="headerlink" href="#Session.loop" title="Permalink to this definition"></a></dt>
<dd><p>This is the asyncio event loop instance.</p>
</dd></dl>

</dd></dl>

</div>
<div class="section" id="envelope">
<h3>Envelope<a class="headerlink" href="#envelope" title="Permalink to this headline"></a></h3>
<p>The envelope represents state built up during the client’s SMTP dialog.  Each
time the protocol state is reset, a new envelope is created.  E.g. when the
SMTP <code class="docutils literal"><span class="pre">RSET</span></code> command is sent, the state is reset and a new envelope is
created.  A new envelope is also created after the <code class="docutils literal"><span class="pre">DATA</span></code> command is
completed, or in certain error conditions as mandated by <a class="reference external" href="http://www.faqs.org/rfcs/rfc5321.html">RFC 5321</a>.</p>
<dl class="class">
<dt id="Envelope">
<em class="property">class </em><code class="descname">Envelope</code><a class="headerlink" href="#Envelope" title="Permalink to this definition"></a></dt>
<dd><dl class="attribute">
<dt id="Envelope.mail_from">
<code class="descname">mail_from</code><a class="headerlink" href="#Envelope.mail_from" title="Permalink to this definition"></a></dt>
<dd><p>Defaulting to None, this attribute holds the email address given in the
<code class="docutils literal"><span class="pre">MAIL</span> <span class="pre">FROM</span></code> command.</p>
</dd></dl>

<dl class="attribute">
<dt id="Envelope.mail_options">
<code class="descname">mail_options</code><a class="headerlink" href="#Envelope.mail_options" title="Permalink to this definition"></a></dt>
<dd><p>Defaulting to None, this attribute contains a list of any ESMTP mail
options provided by the client, such as those passed in by <a class="reference external" href="https://docs.python.org/3/library/smtplib.html#smtplib.SMTP.sendmail">the smtplib
client</a>.</p>
</dd></dl>

<dl class="attribute">
<dt id="Envelope.content">
<code class="descname">content</code><a class="headerlink" href="#Envelope.content" title="Permalink to this definition"></a></dt>
<dd><p>Defaulting to None, this attribute will contain the contents of the
message as provided by the <code class="docutils literal"><span class="pre">DATA</span></code> command.  If the <code class="docutils literal"><span class="pre">decode_data</span></code>
parameter to the <code class="docutils literal"><span class="pre">SMTP</span></code> constructor was True, then this attribute will
contain the UTF-8 decoded string, otherwise it will contain the raw
bytes.</p>
</dd></dl>

<dl class="attribute">
<dt id="Envelope.original_content">
<code class="descname">original_content</code><a class="headerlink" href="#Envelope.original_content" title="Permalink to this definition"></a></dt>
<dd><p>Defaulting to None, this attribute will contain the contents of the
message as provided by the <code class="docutils literal"><span class="pre">DATA</span></code> command.  Unlike the <code class="docutils literal"><span class="pre">content</span></code>
attribute, this attribute will always contain the raw bytes.</p>
</dd></dl>

<dl class="attribute">
<dt id="Envelope.rcpt_tos">
<code class="descname">rcpt_tos</code><a class="headerlink" href="#Envelope.rcpt_tos" title="Permalink to this definition"></a></dt>
<dd><p>Defaulting to the empty list, this attribute will contain a list of the
email addresses provided in the <code class="docutils literal"><span class="pre">RCPT</span> <span class="pre">TO</span></code> commands.</p>
</dd></dl>

<dl class="attribute">
<dt id="Envelope.rcpt_options">
<code class="descname">rcpt_options</code><a class="headerlink" href="#Envelope.rcpt_options" title="Permalink to this definition"></a></dt>
<dd><p>Defaulting to the empty list, this attribute will contain the list of
any recipient options provided by the client, such as those passed in by
<a class="reference external" href="https://docs.python.org/3/library/smtplib.html#smtplib.SMTP.sendmail">the smtplib client</a>.</p>
</dd></dl>

</dd></dl>

</div>
</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
  <h3><a href="../../README.html">Table Of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">Concepts</a><ul>
<li><a class="reference internal" href="#sessions-and-envelopes">Sessions and envelopes</a><ul>
<li><a class="reference internal" href="#session">Session</a></li>
<li><a class="reference internal" href="#envelope">Envelope</a></li>
</ul>
</li>
</ul>
</li>
</ul>

  <h4>Previous topic</h4>
  <p class="topless"><a href="intro.html"
                        title="previous chapter">Introduction</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="cli.html"
                        title="next chapter">Command line usage</a></p>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../../_sources/aiosmtpd/docs/concepts.rst.txt"
            rel="nofollow">Show Source</a></li>
    </ul>
   </div>
<div id="searchbox" style="display: none" role="search">
  <h3>Quick search</h3>
    <form class="search" action="../../search.html" method="get">
      <div><input type="text" name="q" /></div>
      <div><input type="submit" value="Go" /></div>
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../../genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="cli.html" title="Command line usage"
             >next</a> |</li>
        <li class="right" >
          <a href="intro.html" title="Introduction"
             >previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="../../README.html">aiosmtpd 1.1 documentation</a> &#187;</li> 
      </ul>
    </div>
    <div class="footer" role="contentinfo">
        &#169; Copyright 2015-2018, aiosmtpd hackers.
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.6.6.
    </div>
  </body>
</html>