Search code examples
python-3.xsmtplib

How to send an email without login to server in Python


I want to send an email without login to server in Python. I am using Python 3.6. I tried some code but received an error. Here is my Code :

import smtplib                          

smtpServer='smtp.yourdomain.com'      
fromAddr='[email protected]'         
toAddr='[email protected]'     
text= "This is a test of sending email from within Python."
server = smtplib.SMTP(smtpServer)
server.set_debuglevel(1)         
server.sendmail(fromAddr, toAddr, text) 
server.quit()

I expect the mail should be sent without asking user id and password but getting an error :

"smtplib.SMTPSenderRefused: (530, b'5.7.1 Client was not authenticated', '[email protected]')"


Solution

  • The code below worked for me. First, I opened/enabled Port 25 through Network Team and used it in the program.

    import smtplib                          
    smtpServer='smtp.yourdomain.com'      
    fromAddr='[email protected]'         
    toAddr='[email protected]'     
    text= "This is a test of sending email from within Python."
    server = smtplib.SMTP(smtpServer,25)
    server.ehlo()
    server.starttls()
    server.sendmail(fromAddr, toAddr, text) 
    server.quit()