Anybody know of a way with Python to get an alert if an email address is invalid?? Below is my current script but I would like to integrate a way to be notified if an email address is invalid and does not get sent. I've read of a way to use server.verify to do this but was unable to get it to work for me.
<SPAN class="keyword token">import</SPAN> arcpy<SPAN class="punctuation token">,</SPAN> datetime<SPAN class="punctuation token">,</SPAN> smtplib<SPAN class="punctuation token">,</SPAN> os<SPAN class="punctuation token">,</SPAN> email<SPAN class="punctuation token">,</SPAN> email<SPAN class="punctuation token">.</SPAN>mime<SPAN class="punctuation token">.</SPAN>application
arcpy<SPAN class="punctuation token">.</SPAN>env<SPAN class="punctuation token">.</SPAN>overwriteOutput <SPAN class="operator token">=</SPAN> <SPAN class="token boolean">True</SPAN>
points <SPAN class="operator token">=</SPAN> r<SPAN class="string token">"******************.shp"</SPAN> <SPAN class="comment token"># feature class</SPAN>
today <SPAN class="operator token">=</SPAN> datetime<SPAN class="punctuation token">.</SPAN>date<SPAN class="punctuation token">.</SPAN>today<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="comment token"># creating date time variable</SPAN>
dte <SPAN class="operator token">=</SPAN> today<SPAN class="punctuation token">.</SPAN>strftime<SPAN class="punctuation token">(</SPAN><SPAN class="string token">'%m/%d/%Y'</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="comment token"># converts date time variable to string</SPAN>
dtep <SPAN class="operator token">=</SPAN> today<SPAN class="punctuation token">.</SPAN>strftime<SPAN class="punctuation token">(</SPAN><SPAN class="string token">'%m_%d_%Y'</SPAN><SPAN class="punctuation token">)</SPAN>
fields <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="string token">'Applicant'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'Date_Final'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'Email'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'Permit_No'</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="comment token"># define fields for search cursor and print format to use</SPAN>
arcpy<SPAN class="punctuation token">.</SPAN>MakeFeatureLayer_management<SPAN class="punctuation token">(</SPAN>points<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'FinalizedApproaches'</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="comment token">#makes approaches fc a feature layer for use in this script</SPAN>
<SPAN class="keyword token">with</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>da<SPAN class="punctuation token">.</SPAN>SearchCursor<SPAN class="punctuation token">(</SPAN>points<SPAN class="punctuation token">,</SPAN> fields<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"Date_Final = CURRENT_DATE"</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">as</SPAN> cursor<SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">for</SPAN> row <SPAN class="keyword token">in</SPAN> cursor<SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">"{}\t{}\t{}"</SPAN><SPAN class="punctuation token">.</SPAN>format<SPAN class="punctuation token">(</SPAN>row<SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">" Finalized"</SPAN><SPAN class="punctuation token">,</SPAN> row<SPAN class="punctuation token">[</SPAN><SPAN class="number token">2</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">" "</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">"{} list generated"</SPAN><SPAN class="punctuation token">.</SPAN>format<SPAN class="punctuation token">(</SPAN>dte<SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">" "</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">"Finalized notifications are being generated"</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">" "</SPAN>
<SPAN class="keyword token">with</SPAN> arcpy<SPAN class="punctuation token">.</SPAN>da<SPAN class="punctuation token">.</SPAN>SearchCursor<SPAN class="punctuation token">(</SPAN>points<SPAN class="punctuation token">,</SPAN> fields<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"Date_Final = CURRENT_DATE"</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">as</SPAN> email_cursor<SPAN class="punctuation token">:</SPAN>
<SPAN class="keyword token">for</SPAN> row <SPAN class="keyword token">in</SPAN> cursor<SPAN class="punctuation token">:</SPAN>
SERVER <SPAN class="operator token">=</SPAN> <SPAN class="string token">"****************"</SPAN>
msg <SPAN class="operator token">=</SPAN> email<SPAN class="punctuation token">.</SPAN>mime<SPAN class="punctuation token">.</SPAN>Multipart<SPAN class="punctuation token">.</SPAN>MIMEMultipart<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
msg<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'Subject'</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> <SPAN class="string token">"Test"</SPAN>
msg<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'From'</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> <SPAN class="string token">"***********"</SPAN>
msg<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'To'</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> <SPAN class="string token">"*********"</SPAN>
msg<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'Cc'</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> <SPAN class="string token">"*********"</SPAN>
msg<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'Cc2'</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> <SPAN class="string token">"*********"</SPAN>
body <SPAN class="operator token">=</SPAN> email<SPAN class="punctuation token">.</SPAN>mime<SPAN class="punctuation token">.</SPAN>Text<SPAN class="punctuation token">.</SPAN>MIMEText<SPAN class="punctuation token">(</SPAN><SPAN class="string token">""</SPAN><SPAN class="string token">'\n {},\n'</SPAN><SPAN class="punctuation token">.</SPAN>format<SPAN class="punctuation token">(</SPAN>row<SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">+</SPAN> <SPAN class="string token">" "</SPAN> <SPAN class="operator token">+</SPAN> <SPAN class="string token">"This is to notify you that your approach"</SPAN> <SPAN class="operator token">+</SPAN> <SPAN class="string token">" ("</SPAN> <SPAN class="operator token">+</SPAN> <SPAN class="string token">'{}'</SPAN><SPAN class="punctuation token">.</SPAN>format<SPAN class="punctuation token">(</SPAN>row<SPAN class="punctuation token">[</SPAN><SPAN class="number token">3</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">+</SPAN> <SPAN class="string token">") "</SPAN> <SPAN class="operator token">+</SPAN> <SPAN class="string token">"has been finalized."</SPAN><SPAN class="string token">""</SPAN><SPAN class="punctuation token">)</SPAN>
msg<SPAN class="punctuation token">.</SPAN>attach<SPAN class="punctuation token">(</SPAN>body<SPAN class="punctuation token">)</SPAN>
filename<SPAN class="operator token">=</SPAN>r<SPAN class="string token">"*******.pdf"</SPAN>
fp<SPAN class="operator token">=</SPAN>open<SPAN class="punctuation token">(</SPAN>filename<SPAN class="punctuation token">,</SPAN><SPAN class="string token">'rb'</SPAN><SPAN class="punctuation token">)</SPAN>
att <SPAN class="operator token">=</SPAN> email<SPAN class="punctuation token">.</SPAN>mime<SPAN class="punctuation token">.</SPAN>application<SPAN class="punctuation token">.</SPAN>MIMEApplication<SPAN class="punctuation token">(</SPAN>fp<SPAN class="punctuation token">.</SPAN>read<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN>_subtype<SPAN class="operator token">=</SPAN><SPAN class="string token">"pdf"</SPAN><SPAN class="punctuation token">)</SPAN>
fp<SPAN class="punctuation token">.</SPAN>close<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
att<SPAN class="punctuation token">.</SPAN>add_header<SPAN class="punctuation token">(</SPAN><SPAN class="string token">'Content-Disposition'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'attachment'</SPAN><SPAN class="punctuation token">,</SPAN>filename<SPAN class="operator token">=</SPAN><SPAN class="string token">"{}.pdf"</SPAN><SPAN class="punctuation token">.</SPAN>format<SPAN class="punctuation token">(</SPAN>row<SPAN class="punctuation token">[</SPAN><SPAN class="number token">3</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
msg<SPAN class="punctuation token">.</SPAN>attach<SPAN class="punctuation token">(</SPAN>att<SPAN class="punctuation token">)</SPAN>
server <SPAN class="operator token">=</SPAN> smtplib<SPAN class="punctuation token">.</SPAN>SMTP<SPAN class="punctuation token">(</SPAN>SERVER<SPAN class="punctuation token">)</SPAN>
server<SPAN class="punctuation token">.</SPAN>sendmail<SPAN class="punctuation token">(</SPAN><SPAN class="string token">'*********'</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">[</SPAN>msg<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'To'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN>msg<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'cc'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN>msg<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'Cc2'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN> msg<SPAN class="punctuation token">.</SPAN>as_string<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN>
server<SPAN class="punctuation token">.</SPAN>quit<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">print</SPAN> <SPAN class="string token">"Finalized approach notifications sent."</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>