title: Script in python to download email attachments
body: <p>I have the following script : </p>
  
  <pre><code>import imaplib
  import email
  import os
  
  svdir = 'c:/downloads'
  
  mail = imaplib.IMAP4('https://outlook.office365.com/mapi/emsmdb/?'
                       'MailboxId=6ebd46ee-55df-452e-a0af-44e7b248d992@jmawireless.com')
  mail.login("RNa", "RN!")
  mail.select("ADP Files")
  
  typ, msgs = mail.search(None, '(SUBJECT "ADP Files")')
  msgs = msgs[0].split()
  
  for emailid in msgs:
      resp, data = mail.fetch(emailid, "(RFC822)")
      email_body = data[0][1]
      m = email.message_from_string(email_body)
  
      if m.get_content_maintype() != 'multipart':
          continue
  
      for part in m.walk():
          if part.get_content_maintype() == 'multipart':
              continue
          if part.get('Content-Disposition') is None:
              continue
  
          filename = part.get_filename()
          if filename is not None:
              sv_path = os.path.join(svdir, filename)
              if not os.path.isfile(sv_path):
                  print(sv_path)
                  fp = open(sv_path, 'wb')
                  fp.write(part.get_payload(decode=True))
                  fp.close()
  </code></pre>
  
  <p>The error being produced is:</p>
  
  <pre><code>C:\Users\rnandipati\Desktop\Batch Files\EMAIL ADP&gt;email.py
  
  Traceback (most recent call last):
      File "C:\Python34\lib\encodings\idna.py", line 165, in encode
      raise UnicodeError("label empty or too long") UnicodeError: label empty or too long
  
  The above exception was the direct cause of the following exception:
  Traceback (most recent call last):
      File "C:\Users\rnandipati\Desktop\Batch Files\EMAIL ADP\email.py", line 2, in &lt;module&gt;
          import email
      File "C:\Users\rnandipati\Desktop\Batch Files\EMAIL ADP\email.py", line 8, in &lt;module&gt;
          mail=imaplib.IMAP4( 'https://outlook.office365.com/mapi/emsmdb/?MailboxId=6ebd46ee-55df-452e-a0af-44e7b248d992@jmawireless.com')
      File "C:\Python34\lib\imaplib.py", line 181, in __init__
          self.open(host, port)
      File "C:\Python34\lib\imaplib.py", line 257, in open
          self.sock = self._create_socket()
      File "C:\Python34\lib\imaplib.py", line 247, in _create_socket
          return socket.create_connection((self.host, self.port))
      File "C:\Python34\lib\socket.py", line 494, in create_connection
          for res in getaddrinfo(host, port, 0, SOCK_STREAM):
      File "C:\Python34\lib\socket.py", line 533, in getaddrinfo
          for res in _socket.getaddrinfo(host, port, family, type, proto, flags): UnicodeError: encoding with 'idna' codec failed (UnicodeError: label empty or to o long)
  </code></pre>
  
  <p>I do not know why is this error produced. I am fairly new to this kind of scripting.</p>