mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 02:15:10 +00:00 
			
		
		
		
	 3fc5868a1d
			
		
	
	
		3fc5868a1d
		
	
	
	
	
		
			
			This issue can arise with ISPs that redirect all connections on port 25 to their own (crappy) mail servers.
		
			
				
	
	
		
			63 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/env python3
 | |
| 
 | |
| import unittest
 | |
| from test import support
 | |
| import smtplib
 | |
| 
 | |
| ssl = support.import_module("ssl")
 | |
| 
 | |
| support.requires("network")
 | |
| 
 | |
| 
 | |
| class SmtpTest(unittest.TestCase):
 | |
|     testServer = 'smtp.gmail.com'
 | |
|     remotePort = 25
 | |
|     context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
 | |
| 
 | |
|     def test_connect_starttls(self):
 | |
|         support.get_attribute(smtplib, 'SMTP_SSL')
 | |
|         with support.transient_internet(self.testServer):
 | |
|             server = smtplib.SMTP(self.testServer, self.remotePort)
 | |
|             try:
 | |
|                 server.starttls(context=self.context)
 | |
|             except smtplib.SMTPException as e:
 | |
|                 if e.args[0] == 'STARTTLS extension not supported by server.':
 | |
|                     unittest.skip(e.args[0])
 | |
|                 else:
 | |
|                     raise
 | |
|             server.ehlo()
 | |
|             server.quit()
 | |
| 
 | |
| 
 | |
| class SmtpSSLTest(unittest.TestCase):
 | |
|     testServer = 'smtp.gmail.com'
 | |
|     remotePort = 465
 | |
|     context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
 | |
| 
 | |
|     def test_connect(self):
 | |
|         support.get_attribute(smtplib, 'SMTP_SSL')
 | |
|         with support.transient_internet(self.testServer):
 | |
|             server = smtplib.SMTP_SSL(self.testServer, self.remotePort)
 | |
|             server.ehlo()
 | |
|             server.quit()
 | |
| 
 | |
|     def test_connect_default_port(self):
 | |
|         support.get_attribute(smtplib, 'SMTP_SSL')
 | |
|         with support.transient_internet(self.testServer):
 | |
|             server = smtplib.SMTP_SSL(self.testServer)
 | |
|             server.ehlo()
 | |
|             server.quit()
 | |
| 
 | |
|     def test_connect_using_sslcontext(self):
 | |
|         support.get_attribute(smtplib, 'SMTP_SSL')
 | |
|         with support.transient_internet(self.testServer):
 | |
|             server = smtplib.SMTP_SSL(self.testServer, self.remotePort, context=self.context)
 | |
|             server.ehlo()
 | |
|             server.quit()
 | |
| 
 | |
| 
 | |
| def test_main():
 | |
|     support.run_unittest(SmtpTest, SmtpSSLTest)
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     test_main()
 |