小弟正在搞JavaMile,但每次都报错javax.mail.AuthenticationFailedException
寻求发信服务器要求身份验证的解决办法
寻求发信服务器要求身份验证的解决办法
解决方案 »
- 送分
- java做下载的时候,本地下载和迅雷一起出来就报空指针异常?
- Java连接 oracle出错
- JS取值的问题
- 关于Hibernate与HTTPSession的问题
- struts 标签的应用
- 请问前面这个static{...}怎么理解?是属性?是方法?感觉很怪异?
- 高分 tomcat 5.0 怎样配置 运行servlet 是不是每个servlet都要在web.xml中设置???
- 请问谁有DOM操作XML的例子?
- 聘软件工程师.
- JSP连接Sqlserver2000出现乱码问题?求救ing......
- 卖jsp编程技巧的那个垃圾的所有实例的答案全部已收集,现将他人收集的实例答案公布出来,大家鉴赏!
Properties props = new Properties();
props.put("mail.smtp.auth", "true"); //这样才能通过验证
这2句是通过验证的关键。
package pac;
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
public class SendMail
{
private String host=null;
private String from=null;
private String username=null;
private String password=null;
private String subject=null;
private String content=null;
public SendMail()
{
host=null;
from=null;
username=null;
password=null;
subject=null;
content=null;
}
public void setHost(String str)//设置邮件服务器。
{
this.host=str;
}
public String getHost()
{
return this.host;
}
public void setFrom(String str)//设置发送地址
{
this.from=str;
}
public String getFrom()
{
return this.from;
}
public void setUsername(String str)//设置登陆名
{
this.username=str;
}
public String getUsername()
{
return this.username;
}
public void setPassword(String str)//设置登陆密码
{
this.password=str;
}
public String getPassword()
{
return this.password;
}
public void setSubject(String str)//设置主题
{
this.subject=str;
}
public String getSubject()
{
return this.subject;
} public void setContent(String str)//设置内容
{
this.content=str;
}
public String getContent()
{
return this.content;
}
public String[] getTo(String str)//获取多发邮件的地址,每2个邮件用逗号隔开。
{
char temp[]=str.toCharArray();
int num=0;
if(str!=null&&!str.equals(""))
num=1;
else
return null;
for(int i=0;i<temp.length;i++)//确定一共有多少个邮件地址
{
if(temp[i]==',')
num++;
}
System.out.println(num);
String []To=new String [num];
To[0]="";
int j=0;
for(int i=0;i<temp.length;i++)
{
if(temp[i]==',')
{
j=j+1;
i=i+1;
To[j]="";
}
To[j]+=temp[i];
}
return To;
}
public boolean SendMailto(String tto)//发送邮件。
{
try
{
// Get system properties
Properties props = new Properties();
// Setup mail server
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true"); //这样才能通过验证
// Get session
Session session = Session.getDefaultInstance(props); // watch the mail commands go by to the mail server
session.setDebug(true); // Define message
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
String to[]=getTo(tto);
for(int i=0;i<to.length;i++)
{
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to[i]));
}
message.setSubject(this.subject);
message.setText(this.content);
// Send message
message.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(host,username,password);
transport.sendMessage(message, message.getAllRecipients());
//close transport
transport.close();
return true;
}
catch(MessagingException m)
{
System.out.println(m.toString());
return false;
}
}
public static void main(String []args)
{
SendMail mail=new SendMail();
mail.setContent("This is a test!");
mail.setFrom("[email protected]");
mail.setHost("smtp.163.com");
mail.setUsername("user");
mail.setSubject("Test");
mail.setPassword("password");
mail.SendMailto("abc163.com,[email protected]");
}
}
需要在发信程序里加些什么啊?
public static void main(String []args)
{
SendMail mail=new SendMail();//实例化类
mail.setContent("This is a test!");//设置内容
mail.setFrom("[email protected]");//设置发信邮箱
mail.setHost("smtp.163.com");//设置邮件服务器地址
mail.setUsername("user");//设置用户名
mail.setSubject("Test");//设置主题
mail.setPassword("password");//设置密码
mail.SendMailto("abc163.com,[email protected]");//发送邮件,参数为接受邮件者的邮件地址,支持群发,每2个邮件地址之间用逗号隔开。
}
在发邮件之前设定好邮箱服务器,发邮件的地址,用户名,密码,邮件主题,邮件内容。设定顺序没有要求。具体发邮件的步骤请参见SendMailto(String)函数。
可我发送的是HTML样式的页面,不是纯text文本,又该怎么解决呢?
多谢~~
http://www.jspcn.net/htmlnews/B1097670330534.html