How Do I Send Emails Using Python 3.4 With GMail?
Question: I've been trying bits of code such as:

    
    
    import smtplib
    
    def sendemail(from_addr, to_addr_list, cc_addr_list,
                  subject, message,
                  login, password,
                  smtpserver='smtp.gmail.com:587'):
        header  = 'From: %s\n' % from_addr
        header += 'To: %s\n' % ','.join(to_addr_list)
        header += 'Cc: %s\n' % ','.join(cc_addr_list)
        header += 'Subject: %s\n\n' % subject
        message = header + message
    
        server = smtplib.SMTP(smtpserver)
        server.starttls()
        server.login(login,password)
        problems = server.sendmail(from_addr, to_addr_list, message)
        server.quit()
    
    sendemail(from_addr    = 'python@RC.net', 
            to_addr_list = ['example@gmail.com'],
            cc_addr_list = ['example@gmail.com'], 
            subject      = 'Howdy', 
            message      = 'Hello!', 
            login        = 'example@gmail.com', 
            password     = 'XXXX')
    

Except with an actual password and details.

It brings this error:

    
    
    Traceback (most recent call last):
      File "User/Python/Email.py", line 27, in <module>
        password     = 'lollol69')
      File "User/Python/Email.py", line 15, in sendemail
        server = smtplib.SMTP(smtpserver)
      File "C:\Python34\lib\smtplib.py", line 242, in __init__
        (code, msg) = self.connect(host, port)
      File "C:\Python34\lib\smtplib.py", line 321, in connect
        self.sock = self._get_socket(host, port, self.timeout)
      File "C:\Python34\lib\smtplib.py", line 292, in _get_socket
        self.source_address)
      File "C:\Python34\lib\socket.py", line 509, in create_connection
        raise err
      File "C:\Python34\lib\socket.py", line 500, in create_connection
        sock.connect(sa)
    TimeoutError: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
    

Ideally, I could know what's wrong with the code and how I can fix this. If
it's totally wrong then some working code with Gmail would be greatly
appreciated.

Thanks!


Answer: You have to split the smpt server address and the port and use them as
separate parameters for `smtplib.SMTP('smtp.gmail.com', 587)` See
<https://docs.python.org/3.4/library/smtplib.html>:

    
    
    import smtplib
    
    def sendemail(from_addr, to_addr_list, cc_addr_list,
                  subject, message,
                  login, password,
                  smtpserver='smtp.gmail.com', smtpport=587):  # split smtpserver and -port
        header  = 'From: %s\n' % from_addr
        header += 'To: %s\n' % ','.join(to_addr_list)
        header += 'Cc: %s\n' % ','.join(cc_addr_list)
        header += 'Subject: %s\n\n' % subject
        message = header + message
    
        server = smtplib.SMTP(smtpserver, smtpport)  # use both smtpserver  and -port 
        server.starttls()
        server.login(login,password)
        problems = server.sendmail(from_addr, to_addr_list, message)
        server.quit()
    
    sendemail(from_addr    = 'python@RC.net', 
            to_addr_list = ['example@gmail.com'],
            cc_addr_list = ['example@gmail.com'], 
            subject      = 'Howdy', 
            message      = 'Hello!', 
            login        = 'example@gmail.com', 
            password     = 'XXXX')
    

By the way: change your gmail password as it was posted in the stacktrace

