Bonjour,
La plupart des hébergeurs web ont des serveurs mutuels. C'est à dire que différents sites web se partagent le même serveur.
Pour éviter qu'un client ne lance un script qui utilise beaucoup de ressources serveur au dépent des autres clients, l'hébergeur ne donne pas la possibilité aux scripts de dépasser une certaine limite de temps : le timeout.
Pour info, Je suis chez Infomaniak, et il y a la possibilité de passer de 30 secondes à 5 minutes sur demande, ce qui m'a permis d'envoyer mes 2000 mail.
Pour savoir combien de temps ton script met a envoyer un mail, je te conseil d'inclure dans ton script un petit traceur. J'ai choisi d'écrire dans un fichier statut.txt la ligne du client ou il en était pour savoir où j'en était au cas ou ca plante.
Tu peux parexemple à côté de la ligne client renseigner ou tu en est au niveau du temps d'execution de la requete.
Tu fais un test en t'envoyant disons 20 fois l'email, et ensuite tu fait une moyenne que tu multiplie par 7000 pour avoir une idée du temps nécessaire.
Autre option : tu découpe ta requete en traitement disons de 150 clients, une fois la requete effectuée elle te balance sur une autre page qui te demande par exemple "voulez vous passer aux 150 clients suivant" et tu recommence la requête avec les 150 clients pour lesquels le timeout s'est remis à zero...
Il ya a pas mal d'autre solutions.
Attention, pour éviter d'être considérer comme un spammeur, bien penser à envoyer l'adresse de ton domaine directement. Par ex si c'est mail@machin.com, executer sur le serveur machin.com le script est une très bo,nne idée.
Autre chose, la librairie libmail.php est très bonne. Ainsi que l'extension que je pourrais te filer.
A bientôt.