Preheat the oven to 350°. In a bowl, beat the eggs with the milk, Parmigiano, basil, salt and pepper. In an 8-inch ovenproof nonstick skillet, heat the oil. Add the shallots and cook over moderate heat until softened. Stir in the tomato and prosciutto until warm. Add the eggs. Cook until beginning to set on the bottom, 3 minutes. Poke the mozzarella into the eggs. Bake the frittata until just set, 20 minutes. Shake the skillet over high heat until the frittata releases, 10 seconds. Invert the frittata onto a plate and let cool for 5 minutes, then cut into wedges and serve.