Send gift cards online. No charge with Amazon. The recipient will never not get it.
Not always true. I had one disappear last month. Amazon replaced it immediately, but the tracking showed it in transit, but never delivered.