当前位置: 代码迷 >> J2EE >> javamail发送邮件成功 但是却接收不到邮件?该怎么解决
  详细解决方案

javamail发送邮件成功 但是却接收不到邮件?该怎么解决

热度:194   发布时间:2016-04-22 02:52:55.0
javamail发送邮件成功 但是却接收不到邮件?
我用java写了一个发送邮件的程序,提示发送成功,但是发送到的邮箱却收到不邮件?这是为什么
package cn.itcast;

import java.util.Properties;

import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class Demo1 {

/**
* @param args add by zxx ,Feb 5, 2009
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
Properties props = new Properties();
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.transport.protocol", "smtp");
Session session = Session.getInstance(props);
session.setDebug(true);

Message msg = new MimeMessage(session);
msg.setText("nengshoudaoma");
msg.setFrom(new InternetAddress("haosiweishizhu@sohu.com"));

Transport transport = session.getTransport();
transport.connect("smtp.sina.cn", 25, "haosiweishizhu", "haosiwei");
transport.sendMessage(msg,new Address[]{new InternetAddress("wangzhiqing0327@sohu.com")});

//transport.send(msg,new Address[]{new InternetAddress("itcast_test@sohu.com")});
transport.close();
}

}

运行提示:
DEBUG: setDebug: JavaMail version 1.4ea
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.sina.cn", port 25, isSSL false
220 irxd5-182.sinamail.sina.com.cn ESMTP
DEBUG SMTP: connected to host "smtp.sina.cn", port: 25

EHLO 59972864974a4a5
250-irxd5-182.sinamail.sina.com.cn
250-8BITMIME
250-SIZE 83886080
250-AUTH PLAIN LOGIN
250 AUTH=PLAIN LOGIN
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Found extension "SIZE", arg "83886080"
DEBUG SMTP: Found extension "AUTH", arg "PLAIN LOGIN"
DEBUG SMTP: Found extension "AUTH=PLAIN", arg "LOGIN"
DEBUG SMTP: Attempt to authenticate
AUTH LOGIN
334 VXNlcm5hbWU6
aGFvc2l3ZWlzaGl6aHU=
334 UGFzc3dvcmQ6
aGFvc2l3ZWk=
235 #2.0.0 OK Authenticated
DEBUG SMTP: use8bit false
MAIL FROM:<haosiweishizhu@sohu.com>
250 sender <haosiweishizhu@sohu.com> ok
RCPT TO:<wangzhiqing0327@sohu.com>
250 recipient <wangzhiqing0327@sohu.com> ok
DEBUG SMTP: Verified Addresses
DEBUG SMTP: wangzhiqing0327@sohu.com
DATA
354 go ahead
From: haosiweishizhu@sohu.com
Message-ID: <24212202.01317206893437.JavaMail.Administrator@59972864974a4a5>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

nengshoudaoma
.
250 ok: Message 957325150 accepted
QUIT
221 irxd5-182.sinamail.sina.com.cn

------解决方案--------------------
Java code
/**     * 发邮件方法     *      * @return -2:发送失败,登陆邮件服务器用户名或密码错误;-1:发送失败,邮件格式内容不合法;0:发送成功;     */    public static int sendEmail(SendEmailVo sendEmailVo) {        String from = sendEmailVo.getFrom();        String toes = sendEmailVo.getTo();        String password = sendEmailVo.getPassword();        String subject = sendEmailVo.getSubject();        String content = sendEmailVo.getContent();        String host = null;        String name = null;        Session session = null;        MimeMessage message = null;        Transport transport =null;        try {            // 根据发件Email算出发件的邮件服务器            host = "smtp."                    + from.substring(from.indexOf("@") + 1, from.length());            // 根据发件Email算出登陆邮件服务器的用户名            name = from.substring(0, from.indexOf("@"));            // 分割出多个收件人            String[] to = toes.split(";");            // 初始化一个存放属性的工具类            Properties props = new Properties();            // 设置发送Email的服务器            props.put("mail.smtp.host", host);            // 对发送Email进行身份认证            props.put("mail.smpt.auth", "true");            // 得到与服务器的一个会话            session = Session.getInstance(props, null);            // 定义一个邮件消息            message = new MimeMessage(session);            // 可以设置一系列邮件属性的类            BodyPart bp = new MimeBodyPart();            Multipart mp = null;            // 设置能够解析html标签的邮件            bp.setContent(content, "text/html;charset=utf-8");            // 可以存放多个BodyPart的类            mp = new MimeMultipart();            // 添加BodyPart到Multipart类            mp.addBodyPart(bp);            // 设置收件人            message.setFrom(new InternetAddress(from));            // 设置邮件主题            message.setSubject(subject);            // 设置邮件内容            message.setContent(mp);            // 添加多个收件人            for (int i = 0; i < to.length; i++) {                message.addRecipient(Message.RecipientType.TO,                        new InternetAddress(to[i]));            }            transport = session.getTransport("smtp");        } catch (MessagingException e) {            //e.printStackTrace();            return -1;        }        //登陆发邮件服务器,发邮件        try {            transport.connect(host, name, password);            transport.sendMessage(message, message.getAllRecipients());        } catch (MessagingException e) {            //e.printStackTrace();            return -2;        }        return 0;    }