日期:2014-05-20  浏览次数:20933 次

[求高人]关于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());