1 1.导入james服务器的jar包和javaMail的jar包
2 2.解压james服务器压缩包,在bin运行run.bat(目录必须是英文目录)
3 3.可以进入cmd:telnet localhost 4555, 去添加用户密码(root,root)
4 4.进入OutLook进去创建自己的邮箱账号:(服务器必须是localhost, @后面的路径要去服务器的apps→james→SAR-INF→config.xml里面设置路径)
5 5.编写代码:
6 ①.spring邮件配置
7 <!-- ======================================== 配置javaMail ======================================== -->
8 <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
9 <property name="host" value="localhost"></property><!-- 服务器 -->
10 <property name="port" value="25"></property><!-- 端口 -->
11 <property name="username" value="leo"></property><!-- 用户名 -->
12 <property name="password" value="leo"></property><!-- 密码 -->
13 <property name="protocol" value="smtp"></property><!-- 协议 -->
14 <!-- 默认编码 -->
15 <property name="defaultEncoding" value="utf-8"></property>
16 <property name="javaMailProperties">
17 <props>
18 <!-- 设置SMTP服务器要的用户验证 -->
19 <prop key="mail.smtp.auth">true</prop>
20 </props>
21 </property>
22
23 </bean>
24 ②.controller(action)代码编写
25 private MailSender mailSender;
26 public void setMailSender(MailSender mailSender){
27 this.mailSender = mailSender;
28 }
29
30
31
32 //发送邮件测试4
33 try{
34 SimpleMailMessage message = new SimpleMailMessage();
35 message.setFrom("leo@mail.com");
36 message.setTo("leo2@mail.com");
37 message.setSubject("你好");
38 message.setText("好久不见,");
39 mailSender.send(message);
40 }catch(Exception e){
41 e.printStackTrace();
42 }
43 controller:
44 @Resource
45 private MailSender mailSender;
46 action:
47 private MailSender mailSender;
48 public void setMailSender(MailSender mailSender){ this.mailSender = mailSender;
49 }
50
51
52
53 6.进入outlook接收邮件
54
55 1.发送带附件的邮件:
56 使用javaMail的API:JavaMailSender和MimeMessage
57 简单邮件和附件邮件区别:
58 简单邮件:
59 MailSender:spring配置文件applicationContext.xml,配置MailSender的信息
60 SimpleMailMessage:简单设置邮件主体
61 附件邮件:(推荐使用)
62 JavaMailSender:spring配置文件applicationContext.xml,配置JavaMailSender:spring的信息
63 MimeMessage:需要使用JavaMailSender的对象,(.CreateMimeMessage())去创建MimeMessage对象。然后创建 MimeMessageHelper对象,辅助创建邮件主体(new MimeMessageHelper(mimeMessage, true, "UTF-8"))。
64
65
66 2.附件获取方法
67 获取同src的目录下的附件:(和src同一目录下的文件路径,编译后在classes文件下)
68 ClassPathResource file1 = new ClassPathResource("test刘宇轩.txt");
69 helper.addAttachment(file1.getFilename(), file1.getFile());
70
71 获取在WebRoot/WebApp/WebContent的目录下的附件:
72 FileDataSource file1 = new FileDataSource(ServletActionContext.getServletContext().getRealPath ("attachfiles/test刘宇轩.txt"));
73 helper.addAttachment(file1.getName(), file1.getFile());
74
75
76 3.html内容格式,在setText()的第二个参数设置为true
77 StringBuffer sb = new StringBuffer();
78 sb.append("<html>...</html>");
79 message.setText(sb.toString(), true);
80
81 4.连接不同的服务器:
82 连接本地服务器:
83 1.打开james服务器;
84 2.配置applicationContext.xml:
85 <!-- ======================================== 配置javaMail ======================================== -->
86 <!-- <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> -->
87 <!-- <property name="host" value="localhost"></property>服务器 -->
88 <!-- <property name="port" value="25"></property>端口 -->
89 <!-- <property name="username" value="leo1"></property>用户名 -->
90 <!-- <property name="password" value="leo1"></property>密码 -->
91 <!-- <property name="protocol" value="smtp"></property>协议 -->
92 <!-- 默认编码 -->
93 <!-- <property name="defaultEncoding" value="utf-8"></property> -->
94 <!-- <property name="javaMailProperties"> -->
95 <!-- <props> -->
96 <!-- 设置SMTP服务器要的用户验证 -->
97 <!-- <prop key="mail.smtp.auth">true</prop> -->
98 <!-- </props> -->
99 <!-- </property> -->
100 <!-- </bean> -->
101
102 连接qq邮箱服务器:
103 1.开网
104 2.配置applicationContext.xml:
105 <!--配置qq邮件服务器 -->
106 <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
107 <property name="host" value="smtp.qq.com"></property><!-- 服务器 -->
108 <!-- <property name="port" value="25"></property>端口 -->
109 <property name="username" value="1529761321"></property><!-- 用户名 -->
110 <property name="password" value="hfudpieaynmxgecj"></property><!-- 密码 -->
111 <property name="protocol" value="smtp"></property><!-- 协议 -->
112 <!-- 默认编码 -->
113 <property name="defaultEncoding" value="utf-8"></property>
114 <property name="javaMailProperties">
115 <props>
116 <!-- 设置SMTP服务器要的用户验证 -->
117 <prop key="mail.smtp.auth">true</prop>
118 <prop key="mail.smtp.ssl.enable">true</prop>
119 </props>
120 </property>
121
122 </bean>