2010-08-13 6 views
2

Je pense que je peux utiliser une commande mail() avec une grande liste Bcc ou avoir une boucle qui envoie de nombreux emails individuels. J'allais simplement utiliser Bcc car c'est le programme le plus facile à programmer et le plus facile à gérer pour le serveur, mais je dois choisir une adresse pour le champ To. Je peux simplement envoyer un courrier à l'adresse du site Web, mais cela semblerait plus judicieux aux destinataires si cela leur était adressé. En outre, il serait bien de personnaliser chaque message en disant "Bonjour [prénom]" au début.Comment envoyer des e-mails à une longue liste? (PHP)

Je suis juste inquiet que l'envoi à trop de gens prendra trop de temps. Le nombre maximum de destinataires sera 2000. Les utilisateurs sur le site Web choisissent une liste de personnes à envoyer, tapez un message et appuyez sur Envoyer. Est-ce qu'ils attendraient pour toujours si cela envoyait à 2000 personnes? Est-ce que le serveur étoufferait?

Quelles sont les considérations concernant les serveurs de messagerie qui considèrent cela comme du spam?

EDIT: Apparemment, mon client a un serveur SMTP qui, selon lui, peut limiter les courriels sortants. Toujours pas sûr cependant si le PHP serait lent lors de l'envoi à plus de 1000 personnes ...

+0

À moins que vous ne sachiez vraiment ce que vous faites avec les emails de masse, je recommanderais toujours d'utiliser un 3ème service de fête au lieu de réinventer la roue. De plus, si vous le faites mal votre serveur sera marqué comme un serveur de spamming. –

+0

Voir ma note d'édition, je n'ai pas à vous soucier du facteur spam. Juste la performance. Si vous pouvez proposer un service tiers qui ajoute quelques fonctionnalités pratiques et/ou améliore les performances, je serais heureux d'en entendre parler. – Moss

Répondre

11

L'envoi d'un grand nombre d'emails à la fois peut vraiment ralentir votre serveur, ou s'il s'agit d'un hébergement mutualisé, il y a une limite au nombre d'emails pouvant être envoyés sur une heure (avec bluehost ses 700 par heure). Donc, je vous recommande d'envoyer des emails en morceaux.

Créer une table email_queue avec deux champs email_to et email_content. Maintenant, chaque fois que vous souhaitez envoyer un e-mail, il suffit d'insérer un enregistrement dans cette table avec l'adresse e-mail que vous souhaitez envoyer l'e-mail stocké dans la colonne email_to et le contenu e-mail brut dans la colonne email_content. Ensuite, vous créez un travail cron qui s'exécute toutes les heures, ce travail cron vérifie la table email_queue pour voir s'il doit envoyer un email, il récupère 100 enregistrements de la table email_queue et envoie ces 100 emails, lorsque les courriels ont été envoyés, ces 100 enregistrements seraient supprimés.

Je pense que ce serait un moyen idéal d'envoyer des courriels en grand nombre.

5

C'est un sujet assez complexe pour s'assurer que les emails ne commencent pas à ressembler à du spam. Vous pouvez vraiment vous faire quelques faveurs en l'accrochant à quelque chose comme MailChimp.com et en les laissant s'occuper des détails désagréables pour vous.

+0

Je ne vois pas pourquoi les gens sont upvoting une publicité flagrante ..? – dmp

+0

Parce que c'est une bonne réponse. J'ai passé tellement de temps à essayer de résoudre le problème de l'envoi de courriels à une liste, et j'ai fini par utiliser MailChimp. Bien sûr, il y en a d'autres. MailChimp est juste très développeur amical ... –

+0

Juste dire que c'est une bien meilleure solution que d'essayer de rouler le vôtre. Et c'est gratuit dans les limites de ce dont la plupart des gens ont besoin.N'hésitez pas à supprimer le nom du site, mais en fin de compte, ce sera une solution parfaite pour la plupart des gens qui se penchent sur ce sujet. –

1

Je recommanderais en fait de regarder un tiers auquel une API peut accéder. L'envoi d'un grand nombre d'e-mails peut être préjudiciable à votre serveur car il peut se retrouver sur liste noire. Découvrez une entreprise comme www.postmark.com ou quelque chose de similaire qui limitera votre file d'attente de messages, gérer les serveurs listés en blanc, etc.

Questions connexes