<?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: E mail NameError Error Python in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/e-mail-nameerror-error-python/m-p/34745#M2698</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Dave, the try...except clause you had highlighted was further down the code than where the error was occurring...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Your error is telling you that the object &lt;/SPAN&gt;&lt;STRONG&gt;e&lt;/STRONG&gt;&lt;SPAN&gt; (which is a string - 'str') has no attribute &lt;/SPAN&gt;&lt;STRONG&gt;message&lt;/STRONG&gt;&lt;SPAN&gt;. This is possibly because &lt;/SPAN&gt;&lt;STRONG&gt;message &lt;/STRONG&gt;&lt;SPAN&gt;is the old method (deprecated as of Python 2.6).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The new method goes something like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;STRONG&gt;import &lt;/STRONG&gt;arcpy

&lt;STRONG&gt;try:
&lt;/STRONG&gt; arcpy.ImportToolbox("popeye")
&lt;STRONG&gt;except&lt;/STRONG&gt; Exception &lt;STRONG&gt;as &lt;/STRONG&gt;e:
 errormessage = str(type(e)) + '\n'
 &lt;STRONG&gt;for &lt;/STRONG&gt;arg &lt;STRONG&gt;in&lt;/STRONG&gt; e.args:
&amp;nbsp; errormessage += '&amp;nbsp; ' + str(arg) + '\n'
 &lt;STRONG&gt;print &lt;/STRONG&gt;errormessage&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;Firstly it gets the type of the error, then on a new line returns any arguments associated with the error...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This should work:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import arcpy
import smtplib

arcpy.env.overwriteOutput = True
try:
 arcpy.CopyFeatures_management ('\\\\petrots\\data\\PAM\\PFS-Survey\\Data\\xxxxx.shp', '\\\\PETROTS\\arcgisproject\\PAM\\Clients\\PFSSurvey_v1\\Data\\xxx.shp')
except Exception as e:
 errormessage = str(type(e)) + '\n'
 for arg in e.args:
&amp;nbsp; errormessage += '&amp;nbsp; ' + str(arg) + '\n'

 print 'Operation failed, sending error message:\n', errormessage

 to = 'me@email.com'
 gmail_user = 'username'
 gmail_pwd = 'password'
 smtpserver = smtplib.SMTP("smtp.gmail.com",587)
 smtpserver.ehlo()
 smtpserver.starttls()
 smtpserver.ehlo()
 smtpserver.login(gmail_user, gmail_pwd)
 header = 'To:' + to + '\n' + 'From: ' + gmail_user + '\n' + 'Subject:testing \n'
 print header
 msg = header + errormessage
 smtpserver.sendmail(gmail_user, to, msg)
 print 'done!'
 smtpserver.close()&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Let me know how you get on.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 12 Dec 2021 15:56:49 GMT</pubDate>
    <dc:creator>StacyRendall1</dc:creator>
    <dc:date>2021-12-12T15:56:49Z</dc:date>
    <item>
      <title>E mail NameError Error Python</title>
      <link>https://community.esri.com/t5/python-questions/e-mail-nameerror-error-python/m-p/34744#M2697</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello, &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; I am sort of new to python and I am encountering an error I just cant get past. This script copies a shapefile to a new location. due to locks I have to run it automatically when services are stopped. I want the script to email me the specific error if there is one or email me a message saying it completed successfully. here is the code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;import os&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;import arcpy&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;import smtplib&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;import string&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;arcpy.env.overwriteOutput = True&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;try:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; arcpy.CopyFeatures_management ('\\\\petrots\\data\\PAM\\PFS-Survey\\Data\\xxxxx.shp', '\\\\PETROTS\\arcgisproject\\PAM\\Clients\\PFSSurvey_v1\\Data\\xxx.shp')&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;except Exception as e:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; print e.message &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;errormessage = e.message&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;try:&lt;BR /&gt;&lt;/STRONG&gt;&lt;SPAN&gt;&lt;SPAN&gt; to = &lt;/SPAN&gt;&lt;A class="jive-link-email-small" href="mailto:'me@email.com"&gt;'me@email.com&lt;/A&gt;&lt;SPAN&gt;'&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; gmail_user = 'username'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; gmail_pwd = 'password'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; smtpserver = smtplib.SMTP("smtp.gmail.com",587)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; smtpserver.ehlo()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; smtpserver.starttls()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; smtpserver.ehlo&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; smtpserver.login(gmail_user, gmail_pwd)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; header = 'To:' + to + '\n' + 'From: ' + gmail_user + '\n' + 'Subject:testing \n'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; print header&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; msg = header + errormessage&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; smtpserver.sendmail(gmail_user, to, msg)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; print 'done!'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; smtpserver.close()&lt;/SPAN&gt;&lt;BR /&gt;&lt;STRONG&gt;except NameError:&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;SPAN&gt; to = &lt;/SPAN&gt;&lt;A class="jive-link-email-small" href="mailto:'me@email.com"&gt;'me@email.com&lt;/A&gt;&lt;SPAN&gt;'&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; gmail_user = 'username'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; gmail_pwd = 'password'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; smtpserver = smtplib.SMTP("smtp.gmail.com",587)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; smtpserver.ehlo()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; smtpserver.starttls()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; smtpserver.ehlo&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; smtpserver.login(gmail_user, gmail_pwd)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; header = 'To:' + to + '\n' + 'From: ' + gmail_user + '\n' + 'Subject:testing \n'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; print header&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; msg = header + 'all is good'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; smtpserver.sendmail(gmail_user, to, msg)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; print 'done!'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; smtpserver.close()&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When I run it everything is smooth if there is an error however if all is good I get this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Traceback (most recent call last):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; File "P:\Scripts\copy to Y test.py", line 14, in &amp;lt;module&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; errormessage = e.message&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;AttributeError: 'str' object has no attribute 'message'&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I thought the except clause would take care of this however it just isn't getting the job done. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any help would be appreciated.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cheers,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Dave Metzler&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Jan 2012 14:15:02 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/e-mail-nameerror-error-python/m-p/34744#M2697</guid>
      <dc:creator>davidmetzler</dc:creator>
      <dc:date>2012-01-24T14:15:02Z</dc:date>
    </item>
    <item>
      <title>Re: E mail NameError Error Python</title>
      <link>https://community.esri.com/t5/python-questions/e-mail-nameerror-error-python/m-p/34745#M2698</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Dave, the try...except clause you had highlighted was further down the code than where the error was occurring...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Your error is telling you that the object &lt;/SPAN&gt;&lt;STRONG&gt;e&lt;/STRONG&gt;&lt;SPAN&gt; (which is a string - 'str') has no attribute &lt;/SPAN&gt;&lt;STRONG&gt;message&lt;/STRONG&gt;&lt;SPAN&gt;. This is possibly because &lt;/SPAN&gt;&lt;STRONG&gt;message &lt;/STRONG&gt;&lt;SPAN&gt;is the old method (deprecated as of Python 2.6).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The new method goes something like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;STRONG&gt;import &lt;/STRONG&gt;arcpy

&lt;STRONG&gt;try:
&lt;/STRONG&gt; arcpy.ImportToolbox("popeye")
&lt;STRONG&gt;except&lt;/STRONG&gt; Exception &lt;STRONG&gt;as &lt;/STRONG&gt;e:
 errormessage = str(type(e)) + '\n'
 &lt;STRONG&gt;for &lt;/STRONG&gt;arg &lt;STRONG&gt;in&lt;/STRONG&gt; e.args:
&amp;nbsp; errormessage += '&amp;nbsp; ' + str(arg) + '\n'
 &lt;STRONG&gt;print &lt;/STRONG&gt;errormessage&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;Firstly it gets the type of the error, then on a new line returns any arguments associated with the error...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This should work:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import arcpy
import smtplib

arcpy.env.overwriteOutput = True
try:
 arcpy.CopyFeatures_management ('\\\\petrots\\data\\PAM\\PFS-Survey\\Data\\xxxxx.shp', '\\\\PETROTS\\arcgisproject\\PAM\\Clients\\PFSSurvey_v1\\Data\\xxx.shp')
except Exception as e:
 errormessage = str(type(e)) + '\n'
 for arg in e.args:
&amp;nbsp; errormessage += '&amp;nbsp; ' + str(arg) + '\n'

 print 'Operation failed, sending error message:\n', errormessage

 to = 'me@email.com'
 gmail_user = 'username'
 gmail_pwd = 'password'
 smtpserver = smtplib.SMTP("smtp.gmail.com",587)
 smtpserver.ehlo()
 smtpserver.starttls()
 smtpserver.ehlo()
 smtpserver.login(gmail_user, gmail_pwd)
 header = 'To:' + to + '\n' + 'From: ' + gmail_user + '\n' + 'Subject:testing \n'
 print header
 msg = header + errormessage
 smtpserver.sendmail(gmail_user, to, msg)
 print 'done!'
 smtpserver.close()&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Let me know how you get on.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 15:56:49 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/e-mail-nameerror-error-python/m-p/34745#M2698</guid>
      <dc:creator>StacyRendall1</dc:creator>
      <dc:date>2021-12-12T15:56:49Z</dc:date>
    </item>
  </channel>
</rss>

