javamail vs sendmail performance au cours de l'email en vrac
Je suis en train d'écrire un Java masse emailer application pour envoyer des emails à envoyer entre 50 000 à 100 000 par jour pour les utilisateurs.
Le plan actuel est de déléguer l'envoi aux délégué à sendmail (sur le local serveur unix).
De nos tests de sendmail est d'envoyer un maximum de 5 e-mails par seconde.
Serait JavaMail être une option plus rapide?
Personne ne sait ce qu'est une façon plus rapide d'envoyer des e-mails. Nous voulons vous rendre ce processus aussi rapide que possible.
Edit: BTW, un fichier pdf sera attaché trop
Êtes-vous à l'aide de l'Exécution.exec(..) actuellement?
N'en sommes pas encore là.
Vous n'allez probablement pas à rendre le processus "aller plus vite", en changeant juste le programme que vous utilisez pour envoyer des e-mails. Pour voir toute vitesse importante, vous allez avoir besoin de faire quelque chose pour paralléliser le processus de sorte que vous pouvez le faire sur plusieurs machines en même temps.
Trouvé ce (stackoverflow.com/questions/1325482/sendmail-vs-smtp/...) de recommander sendmail.
N'en sommes pas encore là.
Vous n'allez probablement pas à rendre le processus "aller plus vite", en changeant juste le programme que vous utilisez pour envoyer des e-mails. Pour voir toute vitesse importante, vous allez avoir besoin de faire quelque chose pour paralléliser le processus de sorte que vous pouvez le faire sur plusieurs machines en même temps.
Trouvé ce (stackoverflow.com/questions/1325482/sendmail-vs-smtp/...) de recommander sendmail.
OriginalL'auteur WellieeGee | 2009-11-22
Vous devez vous connecter pour publier un commentaire.
Vous n'êtes pas comparer des choses comparables. JavaMail parle SMTP à main le plus proche de serveur de messagerie. Sendmail est un agent de Transfert de Courriel responsable du routage des e-mails à leur destination.
Une installation commune est une application java à l'aide de JavaMail pour relayer des mails via SMTP à un serveur Sendmail. Les deux ne sont pas concurrents, ils sont utilisés ensemble. Un serveur sendmail doit être en mesure d'accepter les livraisons de javamail plus vite que n'importe quelle application java peut produire, mais ensuite, il les délivre de manière asynchrone à son propre rythme.
OriginalL'auteur skaffman
Cela pourrait être un peu trop vieux, mais j'ai juste réussi à obtenir javamail et sendmail pour travailler ensemble. C'est en fait super simple et je me sentais stupide pour ne pas le faire plus vite...
Ignorons sendmail pour un peu ici. Comment pouvons-nous envoyer un e-mail à travers javamail? Il y a des tonnes de tutoriels en ligne, mais voici comment on fait:
Que faire si votre serveur SMTP envoie uniquement les e-mails jusqu'à 100 destinataires (comme le mien)? C'est à ce moment sendmail entre en jeu. Vous pouvez penser sendmail en tant que votre propre serveur SMTP. Donc l'installer en premier. Si vous êtes sous Ubuntu (comme moi), il suffit de faire:
L'installation se termine assez rapidement. Après cela, sendmail est prêt à être utilisé. Je n'ai pas pris la peine de la configuration de n'importe quel type d'authentification ou que ce soit, mais c'est probablement une bonne idée de le faire si votre serveur a une IP publique sur internet. Maintenant, au lieu de pointer votre code java (qui utilise javamail) de votre serveur SMTP, il suffit de pointer vers localhost (ou quelle que soit la machine que vous venez d'installer sendmail).
Vous pouvez même tester votre installation de sendmail avec votre client de messagerie (thunderbird, outlook, windows mail ou quelle que soit la flotte votre bateau). Il suffit de configurer votre serveur SMTP pour la machine que vous avez installés sendmail. Devinez quoi? Il fonctionne!
Il suffit de ne pas l'utiliser pour envoyer des e-mails à l'ensemble du monde... 😉
OriginalL'auteur Andre
Tout d'abord, je suppose que c'est pour des raisons légitimes et pas le spamming?
Sendmail est très, très rapide pour l'envoi d'e-mails. Ce n'est pas si rapide est le DNS recherches nécessaires pour localiser les serveurs d'email pour le domaine - vous avez besoin de faire un MX requête pour chaque - et qui irait très bien avec l'5 messages pr deuxième.
Lorsque ce qui est dit, vous serait probablement mieux avec un standard de haute performance logiciel de liste de diffusion où vous construisez le message avec javamail et de dire au logiciel de liste de diffusion afin de l'envoyer à tout le monde. Aussi allié avec, par exemple, Google Mail, à plus grande échelle bien, pour les avoir tous envoyés. Google Apps for Java peut vous permettre d'envoyer à partir de l'intérieur de la Google cloud.
En arrière dans l'histoire ancienne, quand j'ai travaillé avec cette Majordomo a bien fonctionné avec sendmail. ezmlm fonctionne bien avec qmail (mais est probablement abandonné, maintenant) et je pense que mjmlm fonctionne bien avec postfix.
OriginalL'auteur Thorbjørn Ravn Andersen
Si nous utilisons le Transport.send() - méthode Statique, en Java mailer pour envoyer les mails,cette méthode ne permet l'établissement de la liaison, pour chaque adresse email présent dans la liste. (Handshaking: Demande de Client -> Réponse du serveur -> Accusé de réception. ), c'est à dire à chaque fois qu'il ferme la connexion avec le serveur de messagerie SMTP.
Voici la façon d'augmenter la performance.., par laquelle nous pouvons faire la poignée de main qu'une seule fois, et il réduit considérablement le trafic SMTP. Et d'envoyer le message à tous les destinataires d'un seul coup, Pl reportez-vous SCR#UN pour le trafic SMTP pour ce scénario.
Voici le code de référence,
Au lieu de,
Nous devrions utiliser le morceau de code ci-dessous,
Pour l'envoi groupé de mails.
Ici vous pouvez voir le trafic réseau à l'aide de fil de requin outil..
Ce qui est nécessaire, pour l'installation de ce avec un serveur de Messagerie.
-->Un m/c installé avec du Fil de requin outil et Apache tomcat 6.0 et il devrait être en mesure de faire un ping de votre serveur de messagerie dire relay.abcxyz.com
Maintenant exécuter le banc d'essai pour les deux cas.
OriginalL'auteur Priyank Jain