Spring mail

[整合网络资源] 现在开始,用Spring发一封带有附件与网页的电子邮件:
首先加载Spring框架(略);
完善我们的applicationContext.xml文件,全文如下:

********************************************************************************************
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
 <bean id="mailSender"
  class="org.springframework.mail.javamail.JavaMailSenderImpl">
  <property name="host">
   <value>smtp.163.com</value>
  </property>
  <property name="javaMailProperties">
   <props>
    <prop key="mail.smtp.auth">true</prop>
   </props>
  </property>
  <property name="username">
   <value>51server</value>
  </property>
  <property name="password">
   <value>密码</value>
  </property>
 </bean>
 <!-- 简单的message -->
 <bean id="mailMessage"
  class="org.springframework.mail.SimpleMailMessage">
  <property name="to">
   <value>51server@163.com</value>
  </property>
  <property name="from">
   <value>51server@163.com</value>
  </property>
  <property name="subject"><!-- Email 标题 -->
   <value>我爱亲爱的她</value>
  </property>
 </bean>
 <!-- 测试发送的类 -->
 <bean id="testMailSender" class="com.yourcompany.spring.mail.TestSenderMail">
  <property name="mailMessage">
   <ref bean="mailMessage" />
  </property>
  <property name="mailSender">
   <ref bean="mailSender" />
  </property>
 </bean>
</beans>

******************************************************************

接下来,建立一个SpringIOC管理的bean[TestSenderMail.java]

package com.yourcompany.spring.mail;

import org.springframework.mail.MailException;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;

public class TestSenderMail {
 private MailSender mailSender;
   private SimpleMailMessage mailMessage;
  
   public TestSenderMail() {
    
   }
  
   public SimpleMailMessage getMailMessage() {
     return mailMessage;
   }
   public void setMailMessage(SimpleMailMessage mailMessage) {
     this.mailMessage = mailMessage;
   }
   public MailSender getMailSender() {
     return mailSender;
   }
   public void setMailSender(MailSender mailSender) {
     this.mailSender = mailSender;
   }
  
   public void sendMail() {
     SimpleMailMessage message = new SimpleMailMessage(mailMessage);
     //设置email内容,
     message.setText("测试Spring 发送Email.");    
     try {
       mailSender.send(message);
     } catch (MailException e) {
       e.printStackTrace();
     }
   }

}

 

**************************************

最后测试类

package com.yourcompany.spring.mail;

import junit.framework.TestCase;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test extends TestCase {
 public void test0(){
  ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
  TestSenderMail ts=(TestSenderMail)context.getBean("testMailSender");
  ts.sendMail();
 }
}

 

下面提供一个与该文章主题吻合的程序,发送一封带有附件与网页的邮件;

package com.yourcompany.spring.mail;

import java.io.File;
import java.util.Properties;

import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;

import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;

public class TestAttachedFile {
 public static void main(String[] args) throws Exception {
  JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();

  // 设定 Mail Server
  senderImpl.setHost("smtp.163.com");

  // SMTP验证时,需要用户名和密码
  senderImpl.setUsername("51server");
  senderImpl.setPassword("密码 ");
  // 不设这个是不能用用户名密码通过验证发的
  Properties prop = new Properties();
  prop.setProperty("mail.smtp.auth", "true");
  senderImpl.setJavaMailProperties(prop);
  // 建立邮件讯息
  MimeMessage mailMessage = senderImpl.createMimeMessage();
  MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,
    true, "GBK");
  // 设定收件人、寄件人、主题与内文
  messageHelper.setTo("51server@163.com");
  messageHelper.setFrom("51server@163.com");
  messageHelper.setSubject("技术之旅(zh):SpringMail+AttachFile.toU");
  messageHelper.setText("<html><head></head><body><h1>你的春天到了吗?"
    + "</h1></body></html>", true);
  // 发附件,这里附件可以多个,只要再NEW一个FILE,再ADD一次,即可
  File file = new File("e:/we.jpg");
  messageHelper.addAttachment(MimeUtility.encodeWord(file.getName()),
    file);
  // 传送邮件
  senderImpl.send(mailMessage);
 }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值