Outer (dyadic) product between vectors of the same index in two lists

I have two lists of vectors and I want to take the outer product between elements in the lists of the same index. Using either Outer or TensorProduct works for e.g. the first two indices:

a = {{a1, a2, a3}, {b1, b2, b3}};
b = {{e1, e2, e3}, {f1, f2, f3}};
MatrixForm[Outer[Times, a[], b[]]]
MatrixForm[TensorProduct[a[], b[]]]
MatrixForm[Outer[Times, a[], b[]]]
MatrixForm[TensorProduct[a[], b[]]]

I would like a command that can do this for lists of Length 1000 where the data is imported as a Table as follows and where All = 1000 :

vectorData = Import["/home/vectorData", "Table"];
a = vectorData[[All, {2, 3, 4}]];
b = vectorData[[All, {5, 6, 7}]];

I had a similar question in mind for inner products between "lists of vectors" (or tensors) but this was solved neatly with MapThread : MapThread[Dot, {a, b}]. Does anyone have a similar technique for the outer products ?

You can use MapThread with TensorProduct as the first argument as follows:

$$\left\{\left( \begin{array}{ccc} \text{a1} \text{e1} & \text{a1} \text{e2} & \text{a1} \text{e3} \\ \text{a2} \text{e1} & \text{a2} \text{e2} & \text{a2} \text{e3} \\ \text{a3} \text{e1} & \text{a3} \text{e2} & \text{a3} \text{e3} \\ \end{array} \right),\left( \begin{array}{ccc} \text{b1} \text{f1} & \text{b1} \text{f2} & \text{b1} \text{f3} \\ \text{b2} \text{f1} & \text{b2} \text{f2} & \text{b2} \text{f3} \\ \text{b3} \text{f1} & \text{b3} \text{f2} & \text{b3} \text{f3} \\ \end{array} \right)\right\}$$