What article do we use before a symbol? Is it "an @" or "a @"?

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. Another example is the ornamental symbol ❦ whose Unicode name is floral heart, but which is traditionally called either an Aldus leaf after the Italian Renaissance printer Aldus Manutius or a fleuron. The latter is technically a more generic term that describes the function, rather than the shape, of the character, and a few other symbols are also used as fleurons (mostly florettes, of which only ❀ and ❁ are encoded in Unicode); but the Aldus leaf is by far the commonest, and fleuron is usually synonymous with Aldus leaf—or indeed floral heart.

The latter group is rather larger and contains an enormous array of shapes and forms:

  • letter-based symbols like ℳ (Unicode name script capital m, no known traditional name that I’m aware of)
  • ambiguous cases like ᐄ (it could be letter-based U+1404 Canadian Syllabics ii, or it could be mathematical U+29CA triangle with dot above. Neither has any widely known traditional reading)
  • purely graphical forms like ╊ (U+254A box drawings left light and right vertical heavy—definitely no common name for such cases)
  • CJK glyphs in general—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.