1/3 cup soy milk (I use Silk original at home, and Trader Joe's unsweetened at work)
3/4 teaspoon apple cider vinegar, distilled white vinegar, or lemon juice (I prefer vinegar)
1 tablespoon dijon or yellow mustard (not grain mustard)
1/2 teaspoon salt, optional
2/3 cup canola oil
4 tablespoons canola oil, if needed
1. Start with soy milk directly from the fridge. Pour in the vinegar, and let it sit for a minute or so. It'll get a little chunky. This is a good thing.
2. With a stick blender, blend the soy milk mixture well. If you don't have a stick blender, use a regular blender. If you have neither, please go and get one, as this requires the high speed of the blender to get the emulsion going.
3. Once the soy milk and vinegar are well blended, plop in the mustard. Blend well. Add the salt. Blend well. Essentially, you're starting to whip some air into the emulsion, and making sure that the initial emulsion is very strong, to stand up to the oil.
4. Then, 1 teaspoon at a time (for the first 3 teaspoons), add the 2/3 cup oil while blending. If you have a stick blender, move it around a bit. Then, add the remaining oil (of the 2/3 cup) in a steady stream, while blending the whole time.
5. In total, it should come together in about 3 minutes. Keep the stick blender moving continuously through the emulsion to get it completely combined. If the mayo is too runny, add the reserved 4 tablespoons oil, 1 tablespoon at a time, until it's to your desired thickness. Chill.
If you substitute olive oil for canola oil, make the mayo a tiny bit more runny than you think you'll want it, because olive oil sets up and thickens in the fridge. This mayo keeps for about a week.
Source of recipe: I found this recipe for milk mayo here: http://www.food52.com/recipes/3041_milk_mayonnaise_maionese_de_leite and realised that I could easily use soy milk, and get the same results. I work at a vegan restaurant, where I whip up a batch of it for sandwiches. It comes out perfectly every time.