请问各位高手 有没有知道 怎么用java实现个 email自动通知的功能的 代码?最好能给个原代码或着思路 不知道从那做起呀!等着急用 帮帮忙谢谢~!
解决方案 »
- spring security 3配置ACL时报java.lang.NoSuchMethodError: net.sf.ehcache.Cache.<init>
- 求ssh2框架整合视频
- Java list的问题!!!急啊!!
- commons-httpclient包下的httpClient.executeMethod(postMethod)方法报错
- 想问问朋友,有谁研究过"opencustomer"这个开源项目的?进来讨论讨论。
- 快救命: dao组件测试中getBean()后为null?(在线等!)
- sql:一个字符串 [包含于] 另一个字符串
- 没分了,但是jsp中怎么获得客户端上次请求的URL的信息呢?
- 我的表单问什么不提交?
- 一个JSP关于的问题
- xsl+xml=>HTML时遇到的问题
- 如何判断用户 IE版本 及 操作系统?
JavaMailSenderImpl senderImpl=new JavaMailSenderImpl();
senderImpl.setHost("主机名称");
SimpleMailMessage mailMessage=new SimpleMailMessage();
mailMessage.setTo("收件人的地址");
mailMessage.setFrom("发件人地址");
mailMessage.setText("你要发的内容");
senderImpl.send(mailMessage);
在给这个封装成一个方法,然后在特定的时候启动就是了
问问大家还有什么办法没有
public class Mail { /**
* 内部类MailInor包函了发送邮件需要的基本信息
* 以属性方式需要对其进行配置
* */
class MailInfor {
/**
* constructor 无参
* action 对属性进行初始化
* */
MailInfor() {
setAccessory(false);
} private String host = "smtp.163.com";
private String fromMail = "[email protected]";
private List toMail;
private String userName = "zhangliyang_good";
private String password = "xtgmybjjmh";
private String subject;
private String content;
private boolean isDebug = false;
private boolean accessory;
private List accessorys; public void setAccessorys(List accessList) {
this.accessorys = accessList;
} public List getAccessorys() {
return this.accessorys;
} public void setHost(String host) {
this.host = host;
} public void setFromMail(String fromMail) {
this.fromMail = fromMail;
} public void setToMail(List toMail) {
this.toMail = toMail;
} public void setUserName(String userName) {
this.userName = userName;
} public void setPassword(String password) {
this.password = password;
} public void setSubject(String subject) {
this.subject = subject;
} public void setContent(String content) {
this.content = content;
} public String getHost() {
return host;
} public String getFromMail() {
return fromMail;
} public List getToMail() {
return toMail;
} public String getUserName() {
return userName;
} public String getPassword() {
return password;
} public String getSubject() {
return subject;
} public String getContent() {
return content;
} public void setIsDebug(boolean isDebug) {
this.isDebug = isDebug;
} public boolean isIsDebug() {
return isDebug;
} public void setAccessory(boolean accessory) {
this.accessory = accessory;
} public boolean isAccessory() {
return accessory;
} /**
* 内部类Accessory用于发送附件,包函了发送附件需要的信息
* 以属性方式需要对其进行配置
* */
class Accessory {
private String fileUrl;
private String fileName;
public void setFileUrl(String fileUrl) {
this.fileUrl = fileUrl;
} public String getFileUrl() {
return this.fileUrl;
} public void setFileName(String fileName) {
this.fileName = fileName;
} public String getFileName() {
return this.fileName;
} }
} public boolean sendMail(MailInfor infor) {
Properties props = new Properties();
props.put("mail.smtp.host", infor.getHost());
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props); //是否在控制台输出日志信息
session.setDebug(infor.isIsDebug()); MimeMessage message = new MimeMessage(session);
try {
message.setFrom(new InternetAddress(infor.getFromMail()));
List list = infor.getToMail();
if (list != null) {
Iterator iter = list.iterator();
while (iter.hasNext()) {
message.addRecipient(Message.RecipientType.TO,
new InternetAddress( (String) iter.next()));
}
}
else {
throw new NullPointerException("tomail is not null");
} message.setSubject(infor.getSubject());
MimeMultipart mm = new MimeMultipart(); //普通文本
BodyPart htmlPart = new MimeBodyPart();
htmlPart.setContent(infor.getContent(), "text/html;charset=gb2312"); //附件
if (infor.isAccessory()) {
List accessorys = infor.getAccessorys();
Iterator iter = accessorys.iterator();
BodyPart streamContent = null;
DataSource dataSource = null;
Accessory accessory = null;
while (iter.hasNext()) {
streamContent = new MimeBodyPart();
accessory = (Accessory) iter.next();
dataSource = new FileDataSource(accessory.getFileUrl());
streamContent.setDataHandler(new DataHandler(dataSource));
streamContent.setFileName(accessory.getFileName());
mm.addBodyPart(streamContent);
}
}
//填加相应的属性
mm.addBodyPart(htmlPart); message.setContent(mm);
message.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(infor.getHost(), infor.getUserName(),
infor.getPassword());
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}给个应用例子:
public static void main(String[] args) {
Mail mail = new Mail();
MailInfor infor = mail.new MailInfor();
List list = new ArrayList();
list.add("[email protected]");
infor.setToMail(list);
infor.setSubject("你好");
infor.setContent("......................");
infor.setFromMail("[email protected]");
infor.setUserName("aaaaa");
infor.setPassword("123456");
infor.setAccessory(true); //填加附件
list = new ArrayList(); for (int i = 0; i < 2; i++) {
Accessory accessory = infor.new Accessory();
accessory.setFileName("bb.jpg");
accessory.setFileUrl(
"c:/{D940ED42-3EDC-430B-ACE2-2764187EBFED}0.jpg");
list.add(accessory);
}
infor.setAccessorys(list); if (mail.sendMail(infor)) {
System.out.println("成功");
}
}
}
javax.mail.MessagingException: 553 You are not authorized to send mail, authentication is required at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1020)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:716)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:388)
at com.test.Mail.sendMail(Mail.java:209)
at com.test.Mail.main(Mail.java:244)
帮忙再看看~!