javamail发送邮件成功 但是却接收不到邮件?
我用java写了一个发送邮件的程序,提示发送成功,但是发送到的邮箱却收到不邮件?这是为什么
packagecn.itcast;
importjava.util.Properties;
importjavax.mail.Address;
importjavax.mail.Message;
importjavax.mail.Session;
importjavax.mail.Transport;
importjavax.mail.internet.InternetAddress;
importjavax.mail.internet.MimeMessage;
publicclassDemo1{
/**
*@paramargsaddbyzxx,Feb5,
*/
publicstaticvoidmain(String[]args)throwsException{
//TODOAuto-generatedmethodstub
Propertiesprops=newProperties();
props.setProperty("mail.smtp.auth","true");
props.setProperty("mail.transport.protocol","smtp");
Sessionsession=Session.getInstance(props);
session.setDebug(true);
Messagemsg=newMimeMessage(session);
msg.setText("nengshoudaoma");
msg.setFrom(newInternetAddress("haosiweishizhu@"));
Transporttransport=session.getTransport();
transport.connect("",25,"haosiweishizhu","haosiwei");
transport.sendMessage(msg,newAddress[]{newInternetAddress("wangzhiqing0327@")});
//transport.send(msg,newAddress[]{newInternetAddress("itcast_test@")});
transport.close();
}
}
运行提示:
DEBUG:setDebug:JavaMailversion1.4ea
DEBUG:getProvider()returningjavax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,SunMicrosystems,Inc]
DEBUGSMTP:useEhlotrue,useAuthtrue
DEBUGSMTP:tryingtoconnecttohost"",port25,isSSLfalse
220irxd5-182.ESMTP
DEBUGSMTP:connectedtohost"",port:25
EHLO59972864974a4a5
250-irxd5-182.
250-8BITMIME
250-SIZE83886080
250-AUTHPLAINLOGIN
250AUTH=PLAINLOGIN
DEBUGSMTP:Foundextension"8BITMIME",arg""
DEBUGSMTP:Foundextension"SIZE",arg"83886080"
DEBUGSMTP:Foundextension"AUTH",arg"PLAINLOGIN"
DEBUGSMTP:Foundextension"AUTH=PLAIN",arg"LOGIN"
DEBUGSMTP:Attempttoauthenticate
AUTHLOGIN
334VXNlcm5hbWU6
aGFvc2l3ZWlzaGl6aHU=
334UGFzc3dvcmQ6
aGFvc2l3ZWk=
235#2.0.0OKAuthenticated
DEBUGSMTP:use8bitfalse
MAILFROM:
250senderok
RCPTTO:
250recipientok
DEBUGSMTP:VerifiedAddresses
DEBUGSMTP:wangzhiqing0327@
DATA
354goahead
From:haosiweishizhu@
Message-ID:<24212202.01317206893437.JavaMail.Administrator@59972864974a4a5>
MIME-Version:1.0
Content-Type:text/plain;charset=us-ascii
Content-Transfer-Encoding:7bit
nengshoudaoma
.
250ok:Message957325150accepted
QUIT
221irxd5-182.
------解决方案--------------------
/**
*发邮件方法
*
*@return-2:发送失败,登陆邮件服务器用户名或密码错误;-1:发送失败,邮件格式内容不合法;0:发送成功;
*/
publicstaticintsendEmail(SendEmailVosendEmailVo){
Stringfrom=sendEmailVo.getFrom();
Stringtoes=sendEmailVo.getTo();
Stringpassword=sendEmailVo.getPassword();
Stringsubject=sendEmailVo.getSubject();
Stringcontent=sendEmailVo.getContent();
Stringhost=null;
Stringname=null;
Sessionsession=null;
MimeMessagemessage=null;
Transporttransport=null;
try{
//根据发件Email算出发件的邮件服务器
host="smtp."
+from.substring(from.indexOf("@")+1,from.length());
//根据发件Email算出登陆邮件服务器的用户名
name=from.substring(0,from.indexOf("@"));
//分割出多个收件人
String[]to=toes.split(";");
//初始化一个存放属性的工具类
Propertiesprops=newProperties();
//设置发送Email的服务器
props.put("mail.smtp.host",host);
//对发送Email进行身份认证
props.put("mail.smpt.auth","true");
//得到与服务器的一个会话
session=Session.getInstance(props,null);
//定义一个邮件消息
message=newMimeMessage(session);
//可以设置一系列邮件属性的类
BodyPartbp=newMimeBodyPart();
Multipartmp=null;
//设置能够解析html标签的邮件
bp.setContent(content,"text/html;charset=utf-8");
//可以存放多个BodyPart的类
mp=newMimeMultipart();
//添加BodyPart到Multipart类
mp.addBodyPart(bp);
//设置收件人
message.setFrom(newInternetAddress(from));