Help on Code logic to remove duplicate mails from webapp mail box
Chris Angelico
rosuav at gmail.com
Wed Oct 30 03:57:42 EDT 2019
On Wed, Oct 30, 2019 at 6:36 PM eman banerjee <emanbanerjee at gmail.com> wrote:
>
> On Wednesday, 30 October 2019 12:40:06 UTC+5:30, eman banerjee wrote:
> > Hi
> >
> > I am working on a project where we make connections to webapp mail and extract subject, sender,body etc from mails and save it in dataframe and insert it n SQL DB.
> >
> > My next challenge is to remove any duplicate mails from mailbox.
> > Could you kindly help me.
> > It can be a new mail which is entering the mailbox is first checked , if its a duplicate email,it will not be inserted to mail box
> >
> >
> > Thanks
>
>
> code is below
>
> class EmailAnalysis:
>
> '''Method help to communicate with outlook'''
>
> def emailExchangeCredentials(self):
> try:
> except:
> account = 'Failure'
> return account
This is hiding useful exception messages. Don't do this.
> def extractEmail(self, account, Email_Data, conn):
>
> self.Email_Data = Email_Data
> SUBJECT = []
> SENDER = []
> JOB_NAME = []
> EMAIL_DATE = []
> EMAIL_BODY = []
> REMEDIATION_ID = []
> PRIORITY = []
Usually, all-caps names indicate constants, so this is potentially confusing.
> sql = "INSERT INTO ***DBname** (SENDER,SUBJECT,EMAIL_BODY,EMAIL_DATE) VALUES ("+"'"+str(item.sender.email_address)+"',"+"'"+str(item.subject)+"',"+"'"+str(email_body)+"',"+"'"+str(date_)+"')"
> print('SQL :- ',sql)
> result = cursor.execute(sql.encode('utf-8'))
This is a VERY VERY bad idea. Don't do this. Use parameterized queries.
> item.move(to_folder)
> else:
> item.move(to_folder)
>
> else:
> item.move(to_folder)
Not sure what the logic is here or when you wouldn't move the item to
the folder.
> def emailAnalysisController(self,Task_Details):
> try:
> exection_status = 'Success'
> return exection_status
> except:
> exection_status = 'Failure'
> return exection_status
Python already has a very good mechanism for reporting failures. It's
called exception handling. I recommend using it, rather than absorbing
exceptions to give a generic return value.
Once these issues are sorted out, you'll be able to think about
duplicate detection.
ChrisA
More information about the Python-list
mailing list