哪位大虾用过JavaMail,来帮小弟找找错了

Rhyme620 2008-03-25 12:54:53
代码一、Email_Autherticator.java 服务器验证代码

import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;

public class Email_Autherticator extends Authenticator {
String username = "rhymetan";

String password = "woyao740";
public Email_Autherticator() {
super();
}
public Email_Autherticator(String user,String pwd){
super();
username = user;
password = pwd;
}
public PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication(username,password);
}
}



代码二、Mail.java 发送邮件代码


import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.SendFailedException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class Mail {
private String host = "smtp.163.com";

private String mail_head_name = "this is head of this mail";

private String mail_head_value = "this is head of this mail";

private String mail_to = "hackboyo@126.com";

private String mail_from = "rhymetan@163.com";

private String mail_subject = "this is the subject of this test mail";

private String mail_body = "this is mail_body of this test mail";

private String personalName = "我的邮件";
public void sendMail() throws SendFailedException{
boolean flag = false;
try {
Properties props = new Properties();//获取系统环境
Authenticator auth = new Email_Autherticator();//进行邮件服务用户认证
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", true);
System.out.println(props);
Session session = Session.getDefaultInstance(props,auth);
//设置session,和邮件服务器进行通讯
MimeMessage message = new MimeMessage(session);
message.setContent("Hello","text/plain");//设置邮件格式
message.setSubject(mail_subject);//设置邮件主题
message.setText(mail_body);//设置邮件内容
message.setHeader(mail_head_name, mail_head_value);//设置邮件标题
message.setSentDate(new Date());//设置邮件发送时期
Address address = new InternetAddress(mail_from,personalName);
message.setFrom(address);//设置邮件发送者的地址
Address toaddress = new InternetAddress(mail_to);//设置邮件接收者的地址
message.addRecipient(Message.RecipientType.TO,toaddress);
System.out.println(message);
Transport.send(message);
System.out.println("Send Mail Ok!");
} catch (Exception e) {
e.printStackTrace();
}
//return flag;
}
}



代码三、Test.java 测试代码



public class Test {
public static void main(String[] args) {
Mail m = new Mail();
try {
m.sendMail();
} catch (Exception e) {
e.printStackTrace();
}
}
}



哪位大虾会用的来帮小弟看看了!小弟在这先谢了!

在线等,急啊!



...全文
98 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lit0302 2008-04-11
  • 打赏
  • 举报
回复
我也是这个错误,楼主是怎么解决的,是什么问题啊
Rhyme620 2008-03-25
  • 打赏
  • 举报
回复
谢谢上面的各位兄弟

我的问题已经解决了

明天发分了,今天怎么就分不了呢

还有奇怪,163的咋就不行呢,还报错
Rhyme620 2008-03-25
  • 打赏
  • 举报
回复
javax.mail.SendFailedException: Sending failed;
nested exception is:
class javax.mail.AuthenticationFailedException
at javax.mail.Transport.send0(Transport.java:218)
at javax.mail.Transport.send(Transport.java:80)
at com.rhyme.dao.Mail.sendMail(Mail.java:50)
at com.rhyme.dao.Test.main(Test.java:7)




这是错误的信息
Rhyme620 2008-03-25
  • 打赏
  • 举报
回复

错误的图片

hp5212000 2008-03-25
  • 打赏
  • 举报
回复
错误信息是什么?
Rhyme620 2008-03-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 alis1017 的回复:]
我用的126的邮箱发的,改了下用户,就发送成功了
private String host = "smtp.126.com";

private String mail_head_name = "this is head of this mail";

private String mail_head_value = "this is head of this mail";

private String mail_to = "hackboyo@126.com";

private String mail_from = "alis1017@126.com";
[/Quote]


奇怪,我改了怎么就报错呢,你能帮我看看吗?
Rhyme620 2008-03-25
  • 打赏
  • 举报
回复
还是不行啊,我加了mail.jar和activation.jar

true也加了双引号

换了126的邮箱 smtp.126.com

它还是报错
xql80329 2008-03-25
  • 打赏
  • 举报
回复
www.java2000.net 上有个例子 你可以去看看
你的这个功能只是能简单测试邮件服务器 还没做出附件发送
xql80329 2008-03-25
  • 打赏
  • 举报
回复
你的用户名和 密码 mail_to mail_from 都是有效的就没什么问题
刚搞过一个邮件发送功能
alis1017 2008-03-25
  • 打赏
  • 举报
回复
我用的126的邮箱发的,改了下用户,就发送成功了
private String host = "smtp.126.com";

private String mail_head_name = "this is head of this mail";

private String mail_head_value = "this is head of this mail";

private String mail_to = "hackboyo@126.com";

private String mail_from = "alis1017@126.com";
armysky 2008-03-25
  • 打赏
  • 举报
回复
163的邮箱不能用,换其他的吧,我以前用163的试验过!
alis1017 2008-03-25
  • 打赏
  • 举报
回复
true带引号,不带报错吧
props.put("mail.smtp.auth", "true");
你看看你引用了activation.jar了嘛

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧