There are many paid and free services online with limited data. The problem with them is they provide a limited number of request per user or per api connection. I managed to create a SQL database from data provided by GeoNames with cities and postal code from major countries.
Download MS SQL 2014 Database
Download Flat text file format