Você marcou o tópico como resolvido. Ainda tem dúvidas ou não?
A linha que está dando erro é essa?
for (Cliente c : **clientes**) {
Se sim, esses asteriscos fazem parte do código que você tentou rodar? Pois eles não deveriam estar aí. Olhe como declarei o for no meu exemplo acima.
Eu não tenho como ficar testando aqui, mas testei meu código e ele rodou conforme esperado.
Outra coisa, você ainda está adicionando ao ArrayList coisas que não precisam (nem podem) estar lá, pois são de tipos incompatíveis. Se você declara seu ArrayList como de Cliente, não pode tentar adicionar uma String nele. Revise as seguintes linhas:
List<Cliente> clientes = new ArrayList<Cliente>(); //
clientes.add(code); // NÃO PRECISA DESSA LINHA, E O TIPO É INCOMPATÍVEL
clientes.add(name); // TAMBÉM NÃO PRECISA DESSA
clientes.add(mail); // TAMBÉM NÃO PRECISA DESSA
clientes.add(tel); // TAMBÉM NÃO PRECISA DESSA
// Dessa sim você precisa, pois adiciona o Objeto cliente ao ArrayList
clientes.add(cliente);
Ou seja, após ter um objeto Cliente devidamente preenchido, você só precisa adicioná-lo ao ArrayList, nada mais:
// Declara o ArrayList
List<Cliente> clientes = new ArrayList<Cliente>();
// Adiciona o cliente
clientes.add(cliente);
Abraço.