The article to use does indeed depend on how you pronounce the symbol when speaking out loud.
Since @ is usually read out loud as ‘at’ /æt/ in English, it takes the prevocalic article an, as you surmise. (It can also be called the commercial at, but that is rarer, and I would not write a @ unless I’d already specified that it was intended to be pronounced as ‘commercial at’ in the context.)
The symbol € would most commonly be read as ‘euro sign’, which means it begins with a (consonantal) [j] sound, and would thus take the preconsonantal article a.
Difficulties arise when you reach symbols that either have multiple conventional pronounced counterparts or no conventional pronounced counterparts at all.
The symbol # is a good example of the former: it is varyingly called a number sign, a pound sign, and a hash (all of which begin with a consonant, indicating a #), but also an octothorpe (which would indicate an #). As such, you could write either a # or an # and be ‘correct’—but you’ll likely find readers who stumble at either, because they’re used to calling the symbol by a name that doesn’t fit the article you choose to use.
The latter category of course comprises thousands of symbols and glyphs—everything from ornamental symbols like ❦ (whose Unicode name is floral heart, but which has no conventional pronunciation) to CJK glyphs. Would you, for example, write a 囊 because the character 囊 is pronounced náng in Mandarin, but an 昂 because the character 昂 is pronounced áng? (And what if the symbol is actually quoted in a Cantonese context, where it’s pronounced ngòhng?)
I have never seen any style guide or guidelines mention this latter case at all. In the absence of a conventional pronunciation, there is no real way of deciding what article to use. In the rare instance that you need to use an indefinite article with such a symbol at all, my own personal preference would be to simply use the simplest form of the article, a. But there is no logical reason that an should not be equally correct.