Another option is Amex.
If you are going someplace for a stay of more than a couple of days, this makes sense.
If you are Amex gold or platinum, they will let you charge foreign currency (to a credit card, not Amex) the amount you need and will send it without shipping costs. They can do it overnight for about $10 US. Exchange rates (no fixed commission) were very good.