<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Multi-line 'Body' in mime email in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/multi-line-body-in-mime-email/m-p/202881#M15605</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;explore textwrap a bit more... dedent, indent, wrap are a few of the gems that it contains. there are others &lt;IMG src="https://community.esri.com/legacyfs/online/emoticons/wink.png" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 17 Sep 2018 18:09:15 GMT</pubDate>
    <dc:creator>DanPatterson_Retired</dc:creator>
    <dc:date>2018-09-17T18:09:15Z</dc:date>
    <item>
      <title>Multi-line 'Body' in mime email</title>
      <link>https://community.esri.com/t5/python-questions/multi-line-body-in-mime-email/m-p/202877#M15601</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;New to using mime within a python email...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="https://www.smallsurething.com/multi-line-strings-in-python/" title="https://www.smallsurething.com/multi-line-strings-in-python/" rel="nofollow noopener noreferrer" target="_blank"&gt;https://www.smallsurething.com/multi-line-strings-in-python/&lt;/A&gt;&amp;nbsp;:&amp;nbsp; this guy provides a couple of ways to create a multi-line&amp;nbsp;string, but I can't seem to convince mime to use it in the body of an email.&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;body &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"""first line
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; second line
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; final line"""&lt;/SPAN&gt;
&lt;SPAN class="keyword token"&gt;print&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;body&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;

first line
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; second line
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; final line‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

&lt;SPAN class="comment token"&gt;# I use it in mime like this:&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp; msg &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; MIMEMultipart&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; msg&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"From"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; emailfrom
&amp;nbsp;&amp;nbsp;&amp;nbsp; msg&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"To"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; COMMASPACE&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;join&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;emailto&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; msg&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"Subject"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"Please see attached xls for errors"&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; body &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"""OriginObjectID &amp;amp; DestinationObjectID are the two lines in the error
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RuleDescription is what rule has been broken
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Name should be self-explanatory"""&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; msg&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;attach&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;MIMEText&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;body&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'plain'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;As shown in lines 6-8, this approach produces an indent that I'd like to avoid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;template &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"This is the first line.\n"&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="string token"&gt;"This is the second line.\n"&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="string token"&gt;"This is the third line."&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;


&lt;SPAN class="keyword token"&gt;print&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;template&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
This &lt;SPAN class="keyword token"&gt;is&lt;/SPAN&gt; the first line&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;
This &lt;SPAN class="keyword token"&gt;is&lt;/SPAN&gt; the second line&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;
This &lt;SPAN class="keyword token"&gt;is&lt;/SPAN&gt; the third line&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;‍‍‍‍‍‍‍‍‍

msg &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; MIMEMultipart&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
msg&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"From"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; emailfrom
msg&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"To"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; COMMASPACE&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;join&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;emailto&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
msg&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"Subject"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"Please see attached xls for errors"&lt;/SPAN&gt;
body &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"OriginObjectID &amp;amp; DestinationObjectID are the two lines in the error\n"&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="string token"&gt;"RuleDescription is what rule has been broken\n"&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="string token"&gt;"Name should be self-explanatory"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Is what I'd like to use, and it works great from the command line&amp;nbsp; but when I use it mime, the newlines are ignored so the body of my email is one long run-on sentence. What's the secret to get a nice looking, multi line mime-email body?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 10:04:49 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/multi-line-body-in-mime-email/m-p/202877#M15601</guid>
      <dc:creator>JoeBorgione</dc:creator>
      <dc:date>2021-12-11T10:04:49Z</dc:date>
    </item>
    <item>
      <title>Re: Multi-line 'Body' in mime email</title>
      <link>https://community.esri.com/t5/python-questions/multi-line-body-in-mime-email/m-p/202878#M15602</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Are you creating this in Pro's version of python?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If so, have you tried just using&amp;nbsp;msg = EmailMessage() instead of&amp;nbsp;&lt;SPAN&gt;msg = MIMEMultipart()?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;CODE style="border: 0px; font-weight: inherit;"&gt;&amp;nbsp;&lt;/CODE&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 17 Sep 2018 17:15:16 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/multi-line-body-in-mime-email/m-p/202878#M15602</guid>
      <dc:creator>MichaelVolz</dc:creator>
      <dc:date>2018-09-17T17:15:16Z</dc:date>
    </item>
    <item>
      <title>Re: Multi-line 'Body' in mime email</title>
      <link>https://community.esri.com/t5/python-questions/multi-line-body-in-mime-email/m-p/202879#M15603</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;No.... Just a stand alone script; the script itself runs some gp tools against an enterprise gdb to get topology errors.&amp;nbsp; After working that end, it creates an xls file of the errors that I attach to the email.&amp;nbsp; I just want the users to understand how to read the xls....&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 17 Sep 2018 17:24:30 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/multi-line-body-in-mime-email/m-p/202879#M15603</guid>
      <dc:creator>JoeBorgione</dc:creator>
      <dc:date>2018-09-17T17:24:30Z</dc:date>
    </item>
    <item>
      <title>Re: Multi-line 'Body' in mime email</title>
      <link>https://community.esri.com/t5/python-questions/multi-line-body-in-mime-email/m-p/202880#M15604</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I imported the textwrap module as described here&amp;nbsp;&lt;A class="link-titled" href="https://pymotw.com/2/textwrap/" title="https://pymotw.com/2/textwrap/" rel="nofollow noopener noreferrer" target="_blank"&gt;textwrap – Formatting text paragraphs - Python Module of the Week&lt;/A&gt;&amp;nbsp; and tweaked my 'body' variable a little bit:&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;&lt;SPAN class="keyword token"&gt;import&lt;/SPAN&gt; datetime&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;smtplib&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;textwrap&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;arcpy

body &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"""\nOriginObjectID &amp;amp; DestinationObjectID are the two lines in the error
\nRuleDescription is what rule has been broken
\nName should be self-explanatory"""&lt;/SPAN&gt;
body &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; textwrap&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;dedent&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;body&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;strip&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
msg&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;attach&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;MIMEText&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;body&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;'plain'&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;and the email body looks like this:&lt;/P&gt;&lt;P&gt;&lt;IMG class="image-1 jive-image" height="478" src="https://community.esri.com/legacyfs/online/422173_pastedImage_2.png" width="770" /&gt;&lt;/P&gt;&lt;P&gt;and that works for me!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 10:04:52 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/multi-line-body-in-mime-email/m-p/202880#M15604</guid>
      <dc:creator>JoeBorgione</dc:creator>
      <dc:date>2021-12-11T10:04:52Z</dc:date>
    </item>
    <item>
      <title>Re: Multi-line 'Body' in mime email</title>
      <link>https://community.esri.com/t5/python-questions/multi-line-body-in-mime-email/m-p/202881#M15605</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;explore textwrap a bit more... dedent, indent, wrap are a few of the gems that it contains. there are others &lt;IMG src="https://community.esri.com/legacyfs/online/emoticons/wink.png" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 17 Sep 2018 18:09:15 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/multi-line-body-in-mime-email/m-p/202881#M15605</guid>
      <dc:creator>DanPatterson_Retired</dc:creator>
      <dc:date>2018-09-17T18:09:15Z</dc:date>
    </item>
    <item>
      <title>Re: Multi-line 'Body' in mime email</title>
      <link>https://community.esri.com/t5/python-questions/multi-line-body-in-mime-email/m-p/202882#M15606</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It seems to be a pretty cool find!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 17 Sep 2018 18:23:15 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/multi-line-body-in-mime-email/m-p/202882#M15606</guid>
      <dc:creator>JoeBorgione</dc:creator>
      <dc:date>2018-09-17T18:23:15Z</dc:date>
    </item>
  </channel>
</rss>

