package com.util.mail;import java.util.Date;
import java.util.Properties;import javax.mail.Address;
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;
/**
* 简单邮件发送器
* @author Administrator
*
*/
public class SimpleMailSender { /**
* 简单文本格式邮件发送
* @param mailInfo
* @return
*/
public boolean sendTextMail(MailSenderInfo mailInfo){
MyAuthenticator authenticator = null;
Properties pro = mailInfo.getProperties();
if(mailInfo.isValidate()){
//如果需要身份验证
authenticator = new MyAuthenticator(mailInfo.getUserName(),mailInfo.getPassword());
}
//根据邮件的会话属性和密码验证器构造一个发送邮件的Session
Session sendMailSession = Session.getDefaultInstance(pro, authenticator);
//根据session来创建一个邮件消息
Message mailMessage = new MimeMessage(sendMailSession);
//创建邮件发送者地址
try {
Address from = new InternetAddress(mailInfo.getFromAddress());
//设置邮件消息的发送者
mailMessage.setFrom(from);
//创建邮件的接受者的地址,并设置在邮件的消息中
Address to = new InternetAddress(mailInfo.getToAddress());
mailMessage.setRecipient(Message.RecipientType.TO, to);
//设置邮件消息的主题
mailMessage.setSubject(mailInfo.getSubject());
//设置邮件消息发送的时间
mailMessage.setSentDate(new Date());
//设置邮件消息的主题内容
String mailContent = mailInfo.getContent();
mailMessage.setText(mailContent);
//发送邮件
Transport.send(mailMessage);
return true;
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
return false;
}
}package com.util.mail;import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;public class MyAuthenticator extends Authenticator { String userName = null; String password = null; public MyAuthenticator() {
} public MyAuthenticator(String userName, String password) {
super();
this.userName = userName;
this.password = password;
} protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(userName, password);
}}
package com.util.mail;import java.util.Properties;public class MailSenderInfo { private String mailServerHost; // 发送邮件的服务地址 private String mailServerPort;// 服务器的端口 private String fromAddress;// 邮件发送者的地址 private String toAddress;// 邮件接受者的地址 private String userName;// 登录用户名 private String password;// 密码 private boolean validate = false;// 是否需要身份验证 private String subject;// 邮件主题 private String content;// 邮件内容 private String[] attachFileNames;// 邮件附件的文件名 /**
* 获得邮件会话的属性
*
* @return
*/
public Properties getProperties() {
Properties p = new Properties();
p.put("mail.smtp.host", this.mailServerHost);
p.put("mail.smtp.port", this.mailServerPort);
p.put("mail.smtp.auth", this.validate ? true : false);
return p;
} public String[] getAttachFileNames() {
return attachFileNames;
} public void setAttachFileNames(String[] attachFileNames) {
this.attachFileNames = attachFileNames;
} public String getContent() {
return content;
} public void setContent(String content) {
this.content = content;
} public String getFromAddress() {
return fromAddress;
} public void setFromAddress(String fromAddress) {
this.fromAddress = fromAddress;
} public String getMailServerHost() {
return mailServerHost;
} public void setMailServerHost(String mailServerHost) {
this.mailServerHost = mailServerHost;
} public String getMailServerPort() {
return mailServerPort;
} public void setMailServerPort(String mailServerPort) {
this.mailServerPort = mailServerPort;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getSubject() {
return subject;
} public void setSubject(String subject) {
this.subject = subject;
} public String getToAddress() {
return toAddress;
} public void setToAddress(String toAddress) {
this.toAddress = toAddress;
} public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public boolean isValidate() {
return validate;
} public void setValidate(boolean validate) {
this.validate = validate;
}
}package com.util.mail;/**
* 发送邮件
* @author Administrator
*
*/
public class SendMail { /**
* @param args
*/
public static void main(String[] args) {
SendMail test = new SendMail();
test.launch();
}
public void launch(){
//这个类主要是用来设置邮件的
MailSenderInfo mailInfo = new MailSenderInfo();
// mailInfo.setMailServerHost("smtp.163.com");
mailInfo.setMailServerHost("smtp.126.com");
mailInfo.setMailServerPort("25");
mailInfo.setValidate(true);
mailInfo.setUserName("[email protected]");
mailInfo.setPassword("*******");//设置邮箱的密码
mailInfo.setFromAddress("[email protected]");
mailInfo.setToAddress("[email protected]");
mailInfo.setSubject("我的邮件测试程序");
mailInfo.setContent("fdfjlsjfdslfjdlkflksdjflksdfsd");//设置邮件的内容
//这个类主要是用来发送邮件的
SimpleMailSender sms = new SimpleMailSender();
sms.sendTextMail(mailInfo);
}
}
为什么会报com.sun.mail.smtp.SMTPSendFailedException: 550 ???§±????¨异常
我对java mail 一点都不了解
还请各位大侠帮忙
import java.util.Properties;import javax.mail.Address;
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;
/**
* 简单邮件发送器
* @author Administrator
*
*/
public class SimpleMailSender { /**
* 简单文本格式邮件发送
* @param mailInfo
* @return
*/
public boolean sendTextMail(MailSenderInfo mailInfo){
MyAuthenticator authenticator = null;
Properties pro = mailInfo.getProperties();
if(mailInfo.isValidate()){
//如果需要身份验证
authenticator = new MyAuthenticator(mailInfo.getUserName(),mailInfo.getPassword());
}
//根据邮件的会话属性和密码验证器构造一个发送邮件的Session
Session sendMailSession = Session.getDefaultInstance(pro, authenticator);
//根据session来创建一个邮件消息
Message mailMessage = new MimeMessage(sendMailSession);
//创建邮件发送者地址
try {
Address from = new InternetAddress(mailInfo.getFromAddress());
//设置邮件消息的发送者
mailMessage.setFrom(from);
//创建邮件的接受者的地址,并设置在邮件的消息中
Address to = new InternetAddress(mailInfo.getToAddress());
mailMessage.setRecipient(Message.RecipientType.TO, to);
//设置邮件消息的主题
mailMessage.setSubject(mailInfo.getSubject());
//设置邮件消息发送的时间
mailMessage.setSentDate(new Date());
//设置邮件消息的主题内容
String mailContent = mailInfo.getContent();
mailMessage.setText(mailContent);
//发送邮件
Transport.send(mailMessage);
return true;
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
return false;
}
}package com.util.mail;import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;public class MyAuthenticator extends Authenticator { String userName = null; String password = null; public MyAuthenticator() {
} public MyAuthenticator(String userName, String password) {
super();
this.userName = userName;
this.password = password;
} protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(userName, password);
}}
package com.util.mail;import java.util.Properties;public class MailSenderInfo { private String mailServerHost; // 发送邮件的服务地址 private String mailServerPort;// 服务器的端口 private String fromAddress;// 邮件发送者的地址 private String toAddress;// 邮件接受者的地址 private String userName;// 登录用户名 private String password;// 密码 private boolean validate = false;// 是否需要身份验证 private String subject;// 邮件主题 private String content;// 邮件内容 private String[] attachFileNames;// 邮件附件的文件名 /**
* 获得邮件会话的属性
*
* @return
*/
public Properties getProperties() {
Properties p = new Properties();
p.put("mail.smtp.host", this.mailServerHost);
p.put("mail.smtp.port", this.mailServerPort);
p.put("mail.smtp.auth", this.validate ? true : false);
return p;
} public String[] getAttachFileNames() {
return attachFileNames;
} public void setAttachFileNames(String[] attachFileNames) {
this.attachFileNames = attachFileNames;
} public String getContent() {
return content;
} public void setContent(String content) {
this.content = content;
} public String getFromAddress() {
return fromAddress;
} public void setFromAddress(String fromAddress) {
this.fromAddress = fromAddress;
} public String getMailServerHost() {
return mailServerHost;
} public void setMailServerHost(String mailServerHost) {
this.mailServerHost = mailServerHost;
} public String getMailServerPort() {
return mailServerPort;
} public void setMailServerPort(String mailServerPort) {
this.mailServerPort = mailServerPort;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getSubject() {
return subject;
} public void setSubject(String subject) {
this.subject = subject;
} public String getToAddress() {
return toAddress;
} public void setToAddress(String toAddress) {
this.toAddress = toAddress;
} public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public boolean isValidate() {
return validate;
} public void setValidate(boolean validate) {
this.validate = validate;
}
}package com.util.mail;/**
* 发送邮件
* @author Administrator
*
*/
public class SendMail { /**
* @param args
*/
public static void main(String[] args) {
SendMail test = new SendMail();
test.launch();
}
public void launch(){
//这个类主要是用来设置邮件的
MailSenderInfo mailInfo = new MailSenderInfo();
// mailInfo.setMailServerHost("smtp.163.com");
mailInfo.setMailServerHost("smtp.126.com");
mailInfo.setMailServerPort("25");
mailInfo.setValidate(true);
mailInfo.setUserName("[email protected]");
mailInfo.setPassword("*******");//设置邮箱的密码
mailInfo.setFromAddress("[email protected]");
mailInfo.setToAddress("[email protected]");
mailInfo.setSubject("我的邮件测试程序");
mailInfo.setContent("fdfjlsjfdslfjdlkflksdjflksdfsd");//设置邮件的内容
//这个类主要是用来发送邮件的
SimpleMailSender sms = new SimpleMailSender();
sms.sendTextMail(mailInfo);
}
}
为什么会报com.sun.mail.smtp.SMTPSendFailedException: 550 ???§±????¨异常
我对java mail 一点都不了解
还请各位大侠帮忙
//发送邮件
Transport.send(mailMessage);
你試試用
Transport.sendMessage(mailMessage, to);
就是這個API : sendMessage(Message msg, Address[] addresses) 。Good luck.
mail.jar
这连个包都加进去了,这个与版本有关系吗