[整合网络资源] 现在开始,用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);
}
}