[ 
https://issues.apache.org/jira/browse/EMAIL-72?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Siegfried Goeschl resolved EMAIL-72.
------------------------------------

    Resolution: Won't Fix

IMHO providing a production ready batch mailer is beyond the scope of this 
library. I added EmailLiveTest.testSendingEmailsInBatch() to demonstrate how 
batch sending can be done using commons-email.

> sending several emails in a batch
> ---------------------------------
>
>                 Key: EMAIL-72
>                 URL: https://issues.apache.org/jira/browse/EMAIL-72
>             Project: Commons Email
>          Issue Type: New Feature
>         Environment: any
>            Reporter: Hao Zheng
>         Attachments: DemoMailer.java
>
>
> I found when i want to send several emails in one connection, Commons Email 
> doesn't help. It connects to the SMTP server per email, and it spends more 
> time on connecting and authentication than sending the mails themselve (most 
> SMTP server needs authentication). So I have to code on the javamail api 
> directly, something like:
>         SMTPSSLTransport strans = (SMTPSSLTransport) sess.getTransport();
>         strans.connect();
>         int num = 1000;
>         for (int i = 0; i < num; i++) {
>             SMTPMessage email = createMessage(sess, num);
>             strans.sendMessage(email, email.getAllRecipients());
>         }
>         strans.close();
> In my straightforward test, it saves me 2/3 of the time. So I think it would 
> be nice to add this kind of function into Commons Email, to make it more 
> useful.
> My suggestion is to extract a cleaner Email bean, which contains all email 
> dependent information, e.g. TO, CC, Subject, etc, but leaves out all 
> host/server dependent information, e.g. authenticator, host address, host 
> port, etc. After that, we can still provide simple convenience method for 
> those who only want to send one mail every time. And it is possible to add 
> methods like 'addEmail' to add several mails before sending, and later on, 
> when it is called 'send', we can send them in one SMTP connection. It's much 
> like the API of javamail itself, but we can provide more convenient usage 
> than it. Code will look like this:
>  EmailTransmission trans = new EmailTransmission();
>  trans.setHostName("smtp.myserver.org");
>  HtmlEmail email1 = new HtmlEmail();
>  ...
>  HtmlEmail email2 = new HtmlEmail();
>  ...
>  trans.addEmail(email1);
>  trans.addEmail(email2);
>  ..
>  trans.send();

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to