"Gruß aus Berlin, John!" sounds to my (Austrian) ears rather prosaic and almost like an order. "Herzlichen Glückwunsch zum Geburtstag, John!" isn't much better. I suggest to use:
Hi / Hallo / Lieber John, herzliche Grüße aus Berlin!
Hi / Hallo / Lieber John, herzlichen Glückwunsch zum Geburtstag!
You might want to use a formula like Lieber / Hallo / Hi / Hey etc. when addressing somebody to make it look (and implicitly sound) easier. If you want to maintain your original word order, you should insert "lieber" (but not any of the other particles!):
Herzlichen Glückwunsch zum Geburtstag, lieber John!
You can't necessarily transpose what you would say directly to a person, with all individual phonetic emphasis and additional non-verbal elements, to written text one-to-one, where you lose control of how the recipient reads that text to himself. Therefore, you need to put into words what you perhaps would express otherwise in a personal conversation. Of course, the layout and form of what you write, by what medium etc., also count.
It is another question if that's your usual way of communicating with each other in writing, but this seems not to be the case.