Предлагаю такую аналогию: внешний IP адрес - это номер дома, а порт - номер квартиры. В квартире "живёт" программа, котроая общается с другой, из другого дома.
У некоторых домов ещё и один или несколько корпусов есть со своими номерами (
внутренними IP адресами).
Если номеров корпусов нет, или почтальон знает, как найти нужный корпус - порт открыт, ваша программа может и отправлять, и получать письма. Если почтальон службу валит - порт закрыт, ваша программа может только отправлять письма. А если и у "подруги" порт закрыт -