Comment envoyer plusieurs e-mails dans une seule session?
Je veux envoyer des milliers de courriels à plusieurs destinataires, et que vous souhaitez ouvrir la connexion à mon SMTP et maintenez-le enfoncé. J'espère que c'est plus rapide, puis rouvrez la connexion pour ervy mail. Je voudrais utiliser Apache Commons Courriel, mais pourrait revenir à la Java Mail API si nécessaire.
Droit maintenant je suis, que s'ouvre une ferme la connexion à chaque fois:
HtmlEmail email = new HtmlEmail();
email.setHostName(server.getHostName());
email.setSmtpPort(server.getPort());
email.setAuthenticator(new DefaultAuthenticator(server.getUsername(), server.getPassword()));
email.setTLS(true);
email.setFrom("[email protected]");
email.addTo(to);
email.setSubject(subject);
email.setHtmlMsg(htmlMsg);
email.send();
Garder la session ouverte et envoyer 1000 e-mails et enfin fermer la session.
Savez-vous si cela est possible avec les communes email?
il ne semble pas comme elle...je l'utilise JavaMail plein.
Savez-vous si cela est possible avec les communes email?
il ne semble pas comme elle...je l'utilise JavaMail plein.
OriginalL'auteur Tim Büthe | 2010-12-02
Vous devez vous connecter pour publier un commentaire.
Voici mon test de performance de la classe. Envoyer des mails à l'aide d'une seule connexion est 4 fois plus rapide rouvrir la connexion à chaque fois (ce qui se produit lorsque vous utilisez communes mail). La performance peut être poussé plus loin par l'utilisation de plusieurs threads.
OriginalL'auteur Tim Büthe
Vous pouvez utiliser votre code antérieur, mais d'ajouter ce qui suit pour obtenir le sous-jacent Session
Vous pouvez ajouter un java propriétés de messagerie par
OriginalL'auteur hsampson
Ont un coup d'oeil à http://java.sun.com/products/javamail/javadocs/com/sun/mail/smtp/package-summary.html. Il est un exemple montrant comment envoyer un email. Vous devriez être en mesure d'envoyer plus avant d'appeler close() sur le Transport.
OriginalL'auteur adrianboimvaser
pas besoin xtra code, il suffit de mettre votre tous les destinataires de l'email et de les séparer par des virgules.
MimeMessage pesan = new MimeMessage(session);
pesan.setFrom(new InternetAddress("[email protected]"));
pesan.setRecipients(Message.RecipientType.TO, InternetAddress.parseHeader("[email protected],[email protected],[email protected]",false));
et faire la même chose pour
Message.RecipientType.CC
et
Message.RecipientType.BCC
si il n'y a plus de 1 destinataires de l'email
espérons que son aide :)..
oh désolé.. alors votre réponse est acceptée
OriginalL'auteur Mang Jojot