在spring的applicationContext.xml中配置
Spring提供了JavaMailSenderImpl这个类来发送邮件
<!-- 发邮件,也可以把下面的value中的值写入属性文件中,然后导入进来 -->
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.sina.com"/>
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
</props>
</property>
<property name="username" value="hwt_211"/>
<property name="password" value="wentao211()"/>
</bean>
<!--还可以设置message-->
<!--<bean id="message" class="org.springframework.mail.SimpleMailMessage">
<property name="from" vlaue=""/>
<property name="cc" value=""/>
<property name="sentDate" value=""/>
....
</bean>-->
实现类中
//要记得在spring的配置文件中注入这个对象
private JavaMailSenderImpl mailSender ;
public boolean sendMail(String pathString) throws AddressException, UnsupportedEncodingException, MessagingException{
MimeMessage message = mailSender.createMimeMessage();
message.setSubject("带有附件和图片的复杂形式的邮件");
message.setSentDate(new Date());//设置发送时间
message.setFrom(new InternetAddress(MimeUtility.encodeText("黄文韬")+" <hwt_211@sina.com>"));
message.setReplyTo(new Address[]{new InternetAddress(MimeUtility.encodeText("黄林")+" <hwt_211@sina.com>")});
InternetAddress to = new InternetAddress(MimeUtility.encodeText("黄林")+" <hwt_211@qq.com>");
message.setRecipient(RecipientType.TO, to);
//因为这封邮件包括附件和正文(html和图片),所以是一种混合模式的
Multipart msgMultipart = new MimeMultipart("mixed");
message.setContent(msgMultipart);//和message建立关系
MimeBodyPart attach1 = new MimeBodyPart();
MimeBodyPart attach2 = new MimeBodyPart();
MimeBodyPart content = new MimeBodyPart();
msgMultipart.addBodyPart(attach1);
msgMultipart.addBodyPart(attach2);
msgMultipart.addBodyPart(content);
//对附件1的操作
DataSource ds1 = new FileDataSource(pathString+"/Java培训.txt"); //相对路径
DataHandler dh1 = new DataHandler(ds1);
attach1.setDataHandler(dh1);
attach1.setFileName(MimeUtility.encodeText("java培训.txt"));//对于附件一定要记得设置文件的名字
//对附件2的操作
DataSource ds2 = new FileDataSource(pathString+"/slogo.gif");
DataHandler dh2 = new DataHandler(ds2);
attach2.setDataHandler(dh2);
attach2.setFileName(MimeUtility.encodeText("slogo.gif"));
//对正文的操作
Multipart bodyContent = new MimeMultipart("related");
content.setContent(bodyContent);//和content建立关系
MimeBodyPart htmlPart = new MimeBodyPart();
MimeBodyPart imgPart = new MimeBodyPart();
bodyContent.addBodyPart(htmlPart);
bodyContent.addBodyPart(imgPart);
//对于正文中的img部分的操作
DataSource imgds = new FileDataSource(pathString+"/logo.gif");
DataHandler imgDh = new DataHandler(imgds);
imgPart.setDataHandler(imgDh);
imgPart.setHeader("Content-Location", "www.hwt_211.com");
//对于html部分的操作
htmlPart.setContent("韬哥哥现在可以用代码发邮件了,牛逼不?<img src='www.hwt_211.com'/>","text/html;charset=gbk");
message.saveChanges();//邮件编写完毕
message.saveChanges();
try {
mailSender.send(message);
return true;
} catch (Exception e) {
return false;
}
}
public void setMailSender(JavaMailSenderImpl mailSender) {
this.mailSender = mailSender;
}