To learn about email and SMTP, I wrote a basic SMTP client using sockets to push an email to my outlook account, following an example from a textbook.
I ran into a hiccup though, when the outlook mail server required me to authenticate before I could send the email. After researching the issue, I learned this is to prevent mass email spam and sender spoofing, which makes sense. I resolved this by authenticating using my outlook email and sending the email to myself.
My follow up questions that I'm having trouble finding an answer to are:
If a different mail server, such as google, needs to push an email to my outlook inbox, how does it authenticate? Does the google mail server have an account with outlook?
Is it not possible to just send mail between any two mail servers? Do the mail server admins need to white list other email servers first?