Apart from the Iranian consulate in your country, it is possible to obtain visas on arrival at international airports of Iran. Based on mutual agreement within the framework of international rules and regulations, this option is not for Canadian, British and US citizens. Canadians and Americans can whether go to Interests Section of Islamic Republic of Iran in Washington or one of the Iranian Consulates around the world. Also British citizens can go to the Iranian Consulates in London, Dublin among others in other parts of the world. Citizens of these countries need to obtain a travel authorization number (Grant Notice) from the Ministry of Foreign Affairs of Iran, otherwise getting the visa will not be guaranteed.
Where can I get my visa apart from the consulate?