Предполагая, что ваши кнопки addRow и delRow работают, так как вы ничего не упомянули об этом:
Вместо этого измените ваше входное имя на массив.поэтому вместо
<td><input class ="parts" id="tf1" type="text" style="width:327px"/></td>
<td><input class ="parts" id="tf2" type="text" style="width:51px"/></td>
<td><input class ="parts" id="tf3" type="text" style="width:144px"/></td>
Вы должны использовать
<td><input class ="parts" id="tf1" name="tf[]" type="text" style="width:327px"/></td>
<td><input class ="parts" id="tf2" name="tf[]" type="text" style="width:51px"/></td>
<td><input class ="parts" id="tf3" name="tf[]" type="text" style="width:144px"/></td>
При обработке с PHP все значения будут в $ _POST ['tf'] в виде массива, начиная с индекса 0С этим вы можете перебрать и обработать его и отправить по электронной почте.
В любом случае, мне интересно, почему ваши текстовые поля имеют разную ширину, а style = "width: 327px"; "неверная разметка.