The story
Old English had oft, and it still survives in poetic phrases like oft-repeated. In Middle English it appeared as ofte and oft, and an -n was added, probably by analogy with selden ("seldom") — giving often. The T was pronounced: OFF-ten.
Around the 17th century, English speakers dropped the T in some consonant clusters before a syllabic N or L — the change that silenced castle, listen and fasten. Often went the same way and became OFF-en, and that is the pronunciation dictionaries recorded as standard.
Then something unusual happened: many speakers started saying the T again. Because it is written, people reading the word restored it — a spelling pronunciation. Today both are heard throughout the English-speaking world. The T-less OFF-en is the traditional form, and many people consider it more correct, but OFF-ten is widespread and accepted by dictionaries.
