javaMai+Springl实现给QQ邮箱发邮件(带附件,html格式)

简介: javaMai+Springl实现给QQ邮箱发邮件(带附件,html格式)

      以前的时候想着java发邮件很简单,因为当时使用的是outlook实现的,有兴趣的可以去看看之前的两篇博客文章,1.使用java底层实现邮件的发送(含测试,源码)   和 2.使用Spring实现邮件的发送(含测试,注释,源码)  

就在今天,遇到的需求是给一个QQ邮箱发一份邮件,刚看到需求一看,这不很简单么,随便改改就行了。

       于是我花了15分钟写出来全部代码,但是花了2小时解决了代码的bug.........自己都有点佩服了!下面我来说说我的bug是怎么遇到的和怎么解决的。

      第一,发给QQ邮箱与outlook不一样的是,<property name="host" value="smtp.qq.com"></property>,而outlook的则是<property name="host" value="mail.com"></property>

     第二,<property name="password" value="***********"></property>,而Outlook的密码可以直接就是你当初设置的密码,但是在这里是QQ邮箱的授权码,所谓的授权码,就是你开启了QQ邮箱的


之后,会出来的。

    第三,设置

<property name="javaMailProperties">
           <props>
               <prop key="mail.smtp.auth">true</prop>
              <prop key="mail.smtp.ssl.enable">true</prop>
           </props>
</property>

而outlook可以没有他,直接就可以。QQ邮箱的绝对不行,就这句话折腾了我好久,这句话的意思就是SSL加密。

  第四,这个与outlook一样,添加附件是不能添加文件夹的!不能添加文件夹的不能添加文件夹的!!!一定要记住,别自作聪明的找方法,比如像我一样吧JavaMail里面的Folder抽象类里面的方法挨个试了试。。。。。没有半点用,还浪费了好多时间,你要想添加多个附件的话你丫的可以打包啊,我当初怎么就没有想到呢,只要有个后缀名就可以添加,打包成.zip  或者  .rar 都可以,调用的类是:

FileDataSource file1 = new FileDataSource(new File("E:\\Edisk\\java\\springDemo.rar"));
           helper.addAttachment(file1.getName(), file1);

接下来我上一下源码吧:

applicationContext.xml里面的配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans
  xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:p="http://www.springframework.org/schema/p"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
  
  <bean id="javaMail" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="host" value="smtp.qq.com"></property>
    <property name="defaultEncoding" value="utf-8"></property>
    <property name="username" value="2451999120"></property>
    <property name="password" value="dldadavrtfbedida"></property>
    <property name="protocol" value="smtp"></property>
    <property name="javaMailProperties">
      <props>
        <prop key="mail.smtp.auth">true</prop>
        <prop key="mail.smtp.ssl.enable">true</prop> 
      </props>
    </property>
  </bean>
  
  <bean id="mailService" class="org.service.impl.MailServiceImpl">
    <property name="javaMailSender" ref="javaMail"></property>
  </bean>
</beans>


MailServiceImpl实现类里面的代码:

/**  
* @Title: MailServiceImpl.java
* @Package org.service.impl
* @Description: TODO该方法的主要作用:
* @author A18ccms A18ccms_gmail_com  
* @date 2017-6-1 下午12:17:11
* @version V1.0  
*/
package org.service.impl;
import java.io.File;
import javax.activation.FileDataSource;
import javax.mail.Folder;
import javax.mail.MessagingException;
import javax.mail.Store;
import javax.mail.internet.MimeMessage;
import org.service.IMailService;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
 /**   
 *    
 * 项目名称:spring_Cchop8   
 * 类名称:MailServiceImpl   
 * 类描述:   
 * 创建人:Mu Xiongxiong  
 * 创建时间:2017-6-1 下午12:17:11   
 * 修改人:Mu Xiongxiong   
 * 修改时间:2017-6-1 下午12:17:11   
 * 修改备注:   
 * @version    
 *    
 */
public class MailServiceImpl implements IMailService {
  private JavaMailSender javaMailSender;
  
  /**(非 Javadoc)
   * <p>Title: sendMail</p>
   * <p>Description(描述): </p>
   * @see org.service.IMailService#sendMail()
   */
  @Override
  public void sendMail() {
    //发送带格式的邮件
    MimeMessage message = javaMailSender.createMimeMessage();
    try {
      MimeMessageHelper helper  = new MimeMessageHelper(message,true,"utf-8");
      helper.setFrom("2451999120@qq.com");
      helper.setTo("1513614984@qq.com");
      helper.setSubject("穆雄雄");
      helper.setText("<span style='color:red'>》》》这是原来的字体</span>  <strong>》》》这是加粗的字体</strong>  >>>这个是链接 <a href='http://baidu.com'>点击进入</a>",true);   //内容
      
      //添加一个附件
      FileDataSource file1 = new FileDataSource(new File("E:\\Edisk\\java\\spring_Cchop8.rar"));
      helper.addAttachment(file1.getName(), file1);
    } catch (MessagingException e) {
      // TODO 异常执行块!
      e.printStackTrace();
    }   
    javaMailSender.send(message);
  }
  public JavaMailSender getJavaMailSender() {
    return javaMailSender;
  }
  public void setJavaMailSender(JavaMailSender javaMailSender) {
    this.javaMailSender = javaMailSender;
  }
}


结束!!!

相关文章
|
2月前
|
前端开发
html 格式
【10月更文挑战第14天】html 格式
50 4
|
2月前
|
编解码 前端开发 UED
HTML多媒体格式支持与优化
在HTML中,多媒体格式的支持与优化至关重要。使用`&lt;audio&gt;`、`&lt;video&gt;`和`&lt;img&gt;`标签可分别嵌入音频、视频和图像。支持的格式包括MP3、OGG、JPEG等。为优化体验,应压缩文件、采用响应式设计、使用懒加载,并考虑转码及CDN托管。此外,添加字幕和描述文件可提高辅助功能。遵循这些最佳实践,能显著提升多媒体内容的加载速度与用户满意度。
|
3月前
|
JavaScript 前端开发
用html+javascript打造公文一键排版系统12:删除附件说明中“附件:”里的空格
用html+javascript打造公文一键排版系统12:删除附件说明中“附件:”里的空格
|
1月前
|
移动开发 编解码 UED
除了 `<audio>` 和 `<video>` 标签,HTML5 还支持哪些多媒体格式?
【10月更文挑战第19天】HTML5对多种多媒体格式的支持,为网页开发者提供了丰富的选择,能够更好地满足不同类型多媒体内容在网页中的展示和交互需求,提升了网页的用户体验和多媒体应用的多样性。
|
2月前
|
JSON 数据格式
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
139 2
|
2月前
|
机器学习/深度学习 JSON JavaScript
LangChain-21 Text Splitters 内容切分器 支持多种格式 HTML JSON md Code(JS/Py/TS/etc) 进行切分并输出 方便将数据进行结构化后检索
LangChain-21 Text Splitters 内容切分器 支持多种格式 HTML JSON md Code(JS/Py/TS/etc) 进行切分并输出 方便将数据进行结构化后检索
41 0
|
3月前
|
SQL 安全 数据库
用html+javascript打造公文一键排版系统2:显示源码/显示预览、清除格式
用html+javascript打造公文一键排版系统2:显示源码/显示预览、清除格式
|
27天前
|
前端开发 测试技术 定位技术
如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤
本文深入介绍了如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤。通过实例展示了主页、关于我们、产品展示、新闻动态及联系我们等页面的设计与实现,强调了合理布局、美观设计及用户体验的重要性。旨在为企业打造一个既专业又具吸引力的线上平台。
56 7