java邮件发送不成功,javamail发送邮件成功 但是却接收不到邮件?解决方法
javamail发送邮件成功 但是却接收不到邮件?我用java写了一个发送邮件的程序,提示发送成功,但是发送到的邮箱却收到不邮件?这是为什么packagecn.itcast;importjava.util.Properties;importjavax.mail.Address;importjavax.mail.Message;importjavax.mail.Session;import...
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:
250 sender ok
RCPT TO:
250 recipient 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
------解决方案--------------------
/**
* 发邮件方法
*
* @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));
更多推荐
所有评论(0)