Question

Je dois pouvoir envoyer périodiquement des alertes par courrier électronique aux utilisateurs abonnés. PHP semble avoir du mal à envoyer un message, je recherche donc de bonnes alternatives.

N'importe quelle langue fera l'affaire, si la mise en œuvre est suffisamment rapide. Le nombre de mails envoyés finira par se chiffrer en milliers.

S'il est possible d'éviter l'achat de logiciels sous licence, tant mieux.

Était-ce utile?

La solution

smtplib en python est un doddle à configurer et une API très propre.

Autres conseils

Mise en file d'attente des e-mails dans php - version abrégée - Pear's Mail_Queue. Je l'utilise depuis plus d'un an pour envoyer plus de 30 000 mails par jour ou plus (quelques jours par semaine) sans problème.

Nous avons diverses applications écrivant dans une file d’email dans une table de base de données et un service Windows .Net interrogeant cette table pour composer les e-mails et les envoyer via notre serveur de messagerie.

Nous envoyons jusqu'à 1000 emails par minute ...

Pour Java, il existe http://java.sun.com/products/javamail/ < Je l'ai utilisé dans une application. Assez facile à configurer et à utiliser.

En Ruby, c’est extrêmement simple, mais je ne l’ai pas utilisé, je ne peux donc rien en dire sur les performances. http://snippets.dzone.com/posts/show/2362

Cela dit ... Je doute que PHP soit trop lent pour envoyer des mails. Peut-être avez-vous un goulot d'étranglement dans votre candidature?

Je voudrais juste mentionner que dans mon travail précédent, nous avions créé une solution de messagerie en masse en PHP qui fonctionnait très bien. Je ne vois donc pas pourquoi vous l'excluiez complètement:)

Une chose que vous pouvez faire est de changer le centre de la question au logiciel de messagerie sous-jacent. Par exemple, si je voulais envoyer une tonne de courriels, j'utiliserais n'importe quel langage pour les écrire au format BSMTP, qui ressemble en gros à une simple commande client SMTP. Quelque chose comme:

MAIL FROM:<me@example.com>
RCPT TO:<you@example.com>
DATA
From: Me <me@example.com>
To: You <you@example.com>
Subject: test email

This is the body of the test email I'm sending
.

Ensuite, je nourrirais les fichiers BSMTP via exim:

cat *.bsmtp | exim -bS

Ceci élimine essentiellement le retard dans l'envoi des courriels de votre programme et place la charge sur exim (qui en tant que MTA est mieux équipé pour le gérer).

Une fois que vous maîtrisez les bases, vous pouvez modifier une tonne de choses pour les rendre plus efficaces. Par exemple, si vos courriels ne sont pas personnalisés, vous pouvez effectuer une pré-optimisation en plaçant tous les destinataires du même domaine dans le même fichier BSMTP:

MAIL FROM:<me@example.com>
RCPT TO:<you@example.com>
RCPT TO:<him@example.com>
RCPT TO:<her@example.com>
RCPT TO:<them@example.com>
DATA
From: Me <me@example.com>
To: Me <me@example.com>
Subject: test email

This is the body of the test email I'm sending
.

Vous obtenez également une tonne de marge de manœuvre pour optimiser le MTA lui-même afin d’envoyer le courrier (par exemple, il gérera automatiquement les envois parallèles, les envois d’emails vers le même serveur de messagerie via la même connexion TCP, etc. ).

En ce qui concerne le code, nous utilisions une bibliothèque Perl qui nous permettait de le faire. Essentiellement, vous lui fournissiez les adresses e-mail et les adresses, ce qui entraînerait des appels vers le serveur de messagerie si nécessaire. Il était configurable dans le nombre de sessions parallèles qu'il autorisait. Il surveillait également la charge sur le serveur et ralentissait si la charge dépassait un seuil configurable par l'utilisateur.

J'utilise un programme appelé e-Campaign qui lit les fichiers CSV. Si vous devez le faire par programme, vous voudrez peut-être intégrer une technique d’attente afin de ne pas essayer d’envoyer 10 000 courriels en même temps. Avec e-Campaign, vous pouvez choisir le nombre d'emails à envoyer à la fois et mettre une pause entre ces lots. C'est encore très rapide mais cela ne cause pas de problèmes de surcharge avec le serveur.

Il existe un outil de ligne de commande DOS appelé blat que vous pouvez télécharger et envoyer très facilement des courriels

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top