现在用netbeans建了个java应用程序(新建项目/java/java应用程序/),是发邮件的(用到两个包activation.jar和mail.jar),建好工程后加入下面的代码,运行可以发邮件到设定的邮箱:两个.java文件
main.java:package javamail;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;public class Main {
public static void main(String[] args) throws Exception {
String host = "smtp.sina.com";//发送服务器
String from = "发送的";
String to = "接受的"; Properties props = System.getProperties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
MyAuthenticator myauth =new MyAuthenticator("邮箱名","邮箱密码");
Session session = Session.getDefaultInstance(props,myauth);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
message.setSubject("test");
message.setText("testtsetss");
message.saveChanges();
Transport.send(message);
}
}
另外一个文件:MyAuthenticator.java:
package javamail;
import javax.mail.*;public class MyAuthenticator extends javax.mail.Authenticator{
private String strUser=null;
private String strPwd=null;
public MyAuthenticator(String user,String password)
{
this.strUser =user;
this.strPwd = password;
}
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(strUser,strPwd);
}}这个可以发,可是我又/新建项目/java web/web应用程序,基于JSF的,拖一个button后在里面添加处理,把我上面的代码发进去,
public String button1_action() {
String host = "smtp.sina.com";
String from = "发";
String to = "到";
try{
Properties props = System.getProperties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
MyAuthenticator myauth =new MyAuthenticator("邮箱","密码");
Session session = Session.getDefaultInstance(props,myauth);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
message.setSubject("test");
message.setText("testtsetss");
message.saveChanges();
Transport.send(message);
return null;
}catch(Exception ex)
{
System.out.println(ex);
} return null;
}
}
运行后,邮箱收不到邮件了,这是什么问题啊,想在web下收发邮件就是不成功?
main.java:package javamail;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;public class Main {
public static void main(String[] args) throws Exception {
String host = "smtp.sina.com";//发送服务器
String from = "发送的";
String to = "接受的"; Properties props = System.getProperties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
MyAuthenticator myauth =new MyAuthenticator("邮箱名","邮箱密码");
Session session = Session.getDefaultInstance(props,myauth);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
message.setSubject("test");
message.setText("testtsetss");
message.saveChanges();
Transport.send(message);
}
}
另外一个文件:MyAuthenticator.java:
package javamail;
import javax.mail.*;public class MyAuthenticator extends javax.mail.Authenticator{
private String strUser=null;
private String strPwd=null;
public MyAuthenticator(String user,String password)
{
this.strUser =user;
this.strPwd = password;
}
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(strUser,strPwd);
}}这个可以发,可是我又/新建项目/java web/web应用程序,基于JSF的,拖一个button后在里面添加处理,把我上面的代码发进去,
public String button1_action() {
String host = "smtp.sina.com";
String from = "发";
String to = "到";
try{
Properties props = System.getProperties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
MyAuthenticator myauth =new MyAuthenticator("邮箱","密码");
Session session = Session.getDefaultInstance(props,myauth);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
message.setSubject("test");
message.setText("testtsetss");
message.saveChanges();
Transport.send(message);
return null;
}catch(Exception ex)
{
System.out.println(ex);
} return null;
}
}
运行后,邮箱收不到邮件了,这是什么问题啊,想在web下收发邮件就是不成功?
不在netbeans下,其他的也行啊,看web的怎么弄咯
public class SendMail { private String sender = "[email protected]";
private String smtpHost = "smtp.sina.com";
private String user = "[email protected]";
private String password = "wdmmssm";
private void sendBody(String mailTo, String subject, String information)
throws Exception, MessagingException {
Properties prop = new Properties();
prop.put("mail.smtp.host", smtpHost);// 设置smtp主机
prop.put("mail.smtp.auth", "true");// 使用smtp身份验证
prop.put("mail.smtp.user", user);
prop.put("mail.smtp.password", password);
Session session = Session.getInstance(prop, new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(sender, password);
}
});
// 获得邮件会话对象
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(sender));
// 设置收件人地址
message.setRecipient(Message.RecipientType.TO, new InternetAddress(mailTo));
// 设置邮件主题
message.setSubject(subject);
// mail内容部分
MimeBodyPart part = new MimeBodyPart();
part.setText(information == null ? "" : information, "UTF-8");
// 设置邮件格式为html
part.setContent(information.toString(), "text/html;charset=UTF-8");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(part);// 在 Multipart 中增加mail内容部分
message.setContent(multipart);// 增加 Multipart 到信息体
message.setSentDate(new Date());// 设置发送日期
Transport.send(message);// 发送邮件
} public void send(String mailTo, String subject, String information) {
try {
this.sendBody(mailTo, subject, information);
} catch (Exception e) {
e.printStackTrace();
}
}}
不用pop的啊,我单个搞成java应用程序的话都不用的,我只要发邮件就可以了,可是在web下就是不知道怎么去应用啊,帮帮忙,试一下
public void send(String mailTo, String subject, String information) 这里面有3个参数, // 设置收件人地址 // 设置邮件主题 // mail内容部分
很简单的了阿.