If you have a cellphone and it works in foreign countries, that is the cheapest way. Otherwise, many people get a phone card for the countries they are going to be in and use them at the pay phone in port.
People can also send you email by sending to <shipname>@princess.com and putting your Name and cabin number in the subject line.
Many cellular systems and phones will work in foreign countries. Many times, you just need to get this feature of your telephone turned on. Mine would have worked in Mexico, if I had been able to speak Spanish and follow the instructions! Mine didn't work in the Nassau, although my friends did...she was on AT&T. Her phone worked in every point on the Eastern and Western Caribbean itinerary, except Princess Cays and Costa Maya, as there are not cell towers in those locales.
Usually, this capability depends on the type of phone you have and what system it is operating on. Call your cellular company to find out if your phone should work in the ports you are going to and get the option turned on. My cell company does not charge just to activate the option, you only get charged when you make the calls.
Be careful making phonecalls from your room. I sailed on another cruiseline as a first time cruiser and made a few calls from the room and was SHOCKED when I got my bill at the end of the weekend. Prices can be pricey per minute when calling from the room. We are getting phonecards for our week long cruise in November.
My grandmother was ill during our cruise and was let off in Victoria, we wanted to get hold of her from the ship, they told us it would be around $20.00 a minute! So we had to use email to the hospital.
most ports have a terminal which you walk through when you first depart. There is a bank of phones which you can use. A local individual dials for you, indicates which booth you are to enter, and connects you to your party. It is far cheaper than the ship to shore dialing feature aboard princess. Prices are given in advance. Good sailing to all. Judy