Send an email using python script
Question: Today I needed to send email from a Python script. As always I searched Google
and found the following script that fits to my need.

    
    
    import smtplib
    
    SERVER = "localhost"
    
    FROM = "sender@example.com"
    TO = ["user@example.com"] # must be a list
    
    SUBJECT = "Hello!"
    
    TEXT = "This message was sent with Python's smtplib."
    
    # Prepare actual message
    
    message = """\
    From: %s
    To: %s
    Subject: %s
    
    %s
    """ % (FROM, ", ".join(TO), SUBJECT, TEXT)
    
    # Send the mail
    
    server = smtplib.SMTP(SERVER)
    server.sendmail(FROM, TO, message)
    server.quit()
    

But when I tried to run the program, I got the following error message:

    
    
    Traceback (most recent call last):
      File "C:/Python26/email.py", line 1, in <module>
        import smtplib
      File "C:\Python26\lib\smtplib.py", line 46, in <module>
        import email.utils
      File "C:/Python26/email.py", line 24, in <module>
        server = smtplib.SMTP(SERVER)
    AttributeError: 'module' object has no attribute 'SMTP'
    

How can i solve this problem? Any one can help me?

Thanks in advance, Nimmy.

* * *

changed the name to emailsendin .py. But I got the following error

    
    
    Traceback (most recent call last):
      File "C:\Python26\emailsending.py", line 24, in <module>
        server = smtplib.SMTP(SERVER)
      File "C:\Python26\lib\smtplib.py", line 239, in __init__
        (code, msg) = self.connect(host, port)
      File "C:\Python26\lib\smtplib.py", line 295, in connect
        self.sock = self._get_socket(host, port, self.timeout)
      File "C:\Python26\lib\smtplib.py", line 273, in _get_socket
        return socket.create_connection((port, host), timeout)
      File "C:\Python26\lib\socket.py", line 512, in create_connection
        raise error, msg
    error: [Errno 10061] No connection could be made because the target machine actively refused it
    


Answer: You've named your module the same as one of Python's internal modules. When
you import `smtplib`, it tries to import `email`, and finds your module
instead of the internal one. When two modules import one another, only the
variables in each module visible before the both import statements will be
visible to one another. Renaming your module will fix the problem.

You can see this, although it's slightly obscure, in the stack trace. The
`import email.utils` line from `smtplib.py` is calling _your_ module, in
"c:/Python26/email.py".

Another note: it's probably not a great idea to use your Python install
directory as your working directory for Python code.

