当前位置: 代码迷 >> J2ME >> [求高人]关于java发送邮件!解决办法
  详细解决方案

[求高人]关于java发送邮件!解决办法

热度:9072   发布时间:2013-02-25 21:38:12.0
[求高人]关于java发送邮件!
我导入了 javamail-1.4.3.jar
Java code
    public static void main(String[] args) {        // TODO 自动生成方法存根         try {            Email();        } catch (Exception e) {            // TODO 自动生成 catch 块            e.printStackTrace();            //System.out.print(e.printStackTrace().toString());        }    }    public static void Email() throws Exception {        Properties mailProps = new Properties();        mailProps.put("mail.smtp.host", "smtp.sina.com.cn");        Session mailSession = Session.getDefaultInstance(mailProps);        MimeMessage message = new MimeMessage(mailSession);        // 设置发信人        message.setFrom(new InternetAddress("testnjc0001@sina.com"));        // 收信人        message.setRecipient(Message.RecipientType.TO, new InternetAddress(                "403386057@qq.com"));        // 邮件标题        message.setSubject("XXXXXXXXXXXXXXXXXXXXX");        MimeMultipart multi = new MimeMultipart();         BodyPart textBodyPart = new MimeBodyPart(); //第一个BodyPart.主要写一些一般的信件内容。        textBodyPart.setText("XXXXXXXXXXXXXXXXXXXXXXXXX");        // 压入第一个BodyPart到MimeMultipart对象中。        multi.addBodyPart(textBodyPart);        message.setContent(multi);         message.saveChanges();         Transport.send(message);     }

然后 运行 
Java code
Exception in thread "main" java.lang.NoClassDefFoundError: javax/activation/DataSource    at njc.test.EMail.Email(EMail.java:33)    at njc.test.EMail.main(EMail.java:22)

怎么办? 
还有谁有 简单 方便的 发送邮件的源码??
我现在就知道 对方邮件 和本方邮件。

------解决方案--------------------------------------------------------
这个可以用!你试试看!
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class Test_SendMail {
private String host = "";
private String username = "";
private String password = "";

//设置host
public void setHost(String host) {
this.host = host;
}
//设置用户的用户名和密码
public void setAccount(String username,String password) {
this.username = username;
this.password = password;
}
/**
* @param form 发件人地址
* @param to 收件人地址
* @param subject 邮件标题
* @param content 邮件内容
*/
public void send(String from,String to,String subject,String content) {
Properties pros = new Properties();
pros.put("mail.smtp.host", host); //指定smtp服务器
pros.put("mail.smtp.auth", "true"); //指定是否需要smtp验证
  
try {
Session mailSession = Session.getDefaultInstance(pros); // 与smtp服务器建立一个会话
mailSession.setDebug(false); //是否在控制台显示debug信息
Message message = new MimeMessage(mailSession); //MIME邮件对象,message对象包含了邮件众多有的部件,都是封装成了set方法去设置的
message.setFrom(new InternetAddress(from)); //发件人
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); //收件人
//主题和内容
message.setSubject(subject);
//若发送网页格式的邮件内容,使用这行代码
message.setContent(content,"text/html;charset=GBK");
// message.setText(content);//邮件内容 若不以网页格式发送邮件则注释上一行
message.saveChanges();

//使用smtp协议发邮件,若要收信使用pop3协议
Transport transport = mailSession.getTransport("smtp");
transport.connect(host, username, password);
transport.sendMessage(message, message.getAllRecipients());
  相关解决方案