今天做了一个发邮件的测试,用java发20封邮件 要用2分钟,但是用vbs发20封邮件只需要17秒,请问为什么会有这么大区别呢? java发邮件是采用网上最常见的方式。
Java 代码:import java.util.Properties; import javax.activation.DataHandler;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class EmailTest
{ /**
* @param args
*/
public static void main(String[] args) throws Exception
{
Properties props = new Properties();
props.put("mail.smtp.host", "10.128.64.111");
Session session = Session.getInstance(props, null);
MimeMessage message = new MimeMessage(session);
Transport bus = session.getTransport("smtp");
bus.connect();
InternetAddress from = new InternetAddress("[email protected]");
message.setFrom(from);
InternetAddress iac = new InternetAddress("[email protected]");
message.addRecipient(Message.RecipientType.TO, iac);
message.setSubject("Email Subject Test");
MimeBodyPart messageBodyPart = new MimeBodyPart();
DataHandler dh = new DataHandler("Email Text Test", "text/html;charset=Big5");
messageBodyPart.setDataHandler(dh);
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
message.setContent(multipart);
long startTime = System.currentTimeMillis();
for(int i =0 ;i<20;i++)
{
bus.send(message, message.getAllRecipients());
}
long endTime = System.currentTimeMillis();
System.out.println("startTime:" + startTime);
System.out.println("endTime:" + endTime);
System.out.println("interval:"+ (startTime-endTime));
bus.close(); } }
VBS脚本发邮件:NameSpace = "http://schemas.microsoft.com/cdo/configuration/"
Set Email = CreateObject("CDO.Message")
Email.From = "[email protected]"
Email.To = "[email protected]"
Email.Subject = "subject"
'Email.BodyPart.Charset = "utf-8"
'Email.Textbody = "1234"
Email.Htmlbody="<a href='www.163.com'>test link</a>123<br>123"
With Email.Configuration.Fields
.Item(NameSpace&"sendusing") = 2
.Item(NameSpace&"smtpserver") = "10.128.64.111"
'cnhub01----1
'aehub01----17
.Item(NameSpace&"smtpserverport") = 25
.Item(NameSpace&"smtpauthenticate") = 0
.Item(NameSpace&"sendusername") = ""
.Item(NameSpace&"sendpassword") = "" '
.Update
End With
for i=0 to 10
Email.Send
next
msgbox "ok"
Java 代码:import java.util.Properties; import javax.activation.DataHandler;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class EmailTest
{ /**
* @param args
*/
public static void main(String[] args) throws Exception
{
Properties props = new Properties();
props.put("mail.smtp.host", "10.128.64.111");
Session session = Session.getInstance(props, null);
MimeMessage message = new MimeMessage(session);
Transport bus = session.getTransport("smtp");
bus.connect();
InternetAddress from = new InternetAddress("[email protected]");
message.setFrom(from);
InternetAddress iac = new InternetAddress("[email protected]");
message.addRecipient(Message.RecipientType.TO, iac);
message.setSubject("Email Subject Test");
MimeBodyPart messageBodyPart = new MimeBodyPart();
DataHandler dh = new DataHandler("Email Text Test", "text/html;charset=Big5");
messageBodyPart.setDataHandler(dh);
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
message.setContent(multipart);
long startTime = System.currentTimeMillis();
for(int i =0 ;i<20;i++)
{
bus.send(message, message.getAllRecipients());
}
long endTime = System.currentTimeMillis();
System.out.println("startTime:" + startTime);
System.out.println("endTime:" + endTime);
System.out.println("interval:"+ (startTime-endTime));
bus.close(); } }
VBS脚本发邮件:NameSpace = "http://schemas.microsoft.com/cdo/configuration/"
Set Email = CreateObject("CDO.Message")
Email.From = "[email protected]"
Email.To = "[email protected]"
Email.Subject = "subject"
'Email.BodyPart.Charset = "utf-8"
'Email.Textbody = "1234"
Email.Htmlbody="<a href='www.163.com'>test link</a>123<br>123"
With Email.Configuration.Fields
.Item(NameSpace&"sendusing") = 2
.Item(NameSpace&"smtpserver") = "10.128.64.111"
'cnhub01----1
'aehub01----17
.Item(NameSpace&"smtpserverport") = 25
.Item(NameSpace&"smtpauthenticate") = 0
.Item(NameSpace&"sendusername") = ""
.Item(NameSpace&"sendpassword") = "" '
.Update
End With
for i=0 to 10
Email.Send
next
msgbox "ok"
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货