Will multi-threading or other method make my program run faster?
As stated in the comments, multi-threading might not be what you are looking for.



I think there is room for improvement on the way you read your file. Currently:


you read the whole file into a string all_emails = f.readlines()
you remove duplicates rs_emails_set = set(rs_emails)  # remove duplicates
and you read every element of this array for email in rs_emails_set:


Reading this comment, I strongly recommend you to test the following:

processed_emails = set()
for email in f: 
  if email not in processed_emails:
    # validate email or not
    processed_emails.add(email)


Instead of immediately writing the good and bad emails files, you could store those into 2 lists and write them at once at the very end (removing some I/O with the filesystem as well)