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