If someone sends me an email and I open it, is there anyway for the sender to see my IP address?
Possibly but only with some effort if the email message is HTML formatted and has inline images that are hosted on an external server. If you are truly concerned, then only view email messages as plain text with attachments.
If you view an HTML email message that—for example—has an inline image that is hosted on a server with a URL like this:
http://www.example.com/cool_image.jpg
Then whoever is own control of www.example.com
could then see who has accessed cool_image.jpg
and get details such as the IP address they were using when they viewed that image and such.
And if someone were really creative they could do something like add query parameters to that URL like this:
http://www.example.com/cool_image.jpg?recipient=someone&message=007
And then they would further know that the image was viewed by the “recipient” known as “someone” and the message in question was message 007
. But this is all a tad too perfect and easy to read so they might use a hash of nonsense track things like this:
http://www.example.com/cool_image.jpg?id=596ea1a96d94f
And then—on their side—be able to decipher “id” with a value of “596ea1a96d94f” to be a specific recipient and specific ID assigned to that message transaction.
But that requires effort on the part of the sender. And most people don’t do that. Many spammers do and this is why when junk/SPAM messages are filtered by mail services inline images are disabled unless you—as the recipient—explicitly ask they be shown.
That said, like I said at the outset… If this all is a concern to you, set your mail readers to only show you the plain text version of a message and you should be safe.