buenas,
estoy de acuerdo en que es menos tedioso validar con una expresión regular, pero a la misma vez tiene validéz si se trata sobre una cuestión de aprendizaje, desarrollo de logística y dominio. claro, eso no te va ayudar a comprender mejor las expresiones regulares pero te puede servir en el desarrollo intelectual.
para determinar si existe más de un arroba en un string con indexOf, debes invocarlo más de una vez partiendo en diferentes puntos del string. si la segunda invocación devuelve un número distinto a -1, significa que tiene multiples arroba.
Código:
var mail = "[email protected]", count = -1, pos = -1;
do{
pos = mail.indexOf("@", pos +1);
count++;
} while(pos != -1);
al final la variable count te indica cuantos arrobas existen en el string. no obstante, entiendase que la validación de un mail es más complejo que simplemente validar si existen una cantidad de puntos o arroba. también debes validar el orden en que estos caracteres estan dispuestos. en la forma tradicional el proceso es más complejo.