介绍
使用JavaWeb怎么实现邮件发送功能吗?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
<强>项目中遇到的问题:强>
1,在执行到文件文件=新文件(“D: \ Chat_Software \ sky.JPG”);时出现错误,之前写的时xlsx文件,测试期间可以对xls, jpg,文本,. doc文件进行发送。发送xlsx文件时出现报的错。
问题解决方案:
。xls文件扩展名对应的是Microsoft Office EXCEL 2003及以前的版本。
。xlsx文件扩展名对应的是Microsoft Office EXCEL 2007及后期的版本。
有可能时你下载的麦不是1.6以上版本的,建议下载1.6以上版本的邮件
2,在执行到message.saveChanges ();方法报错无法进行保存设置,也有可能时你的邮件版本较低造成的。
在书写文件文件=新文件();时注意修改正确的路径,也可以写在表单表单里用文件进行传值,主题和内容也写在了方法里因人而异如果其他需求可以需改参数进行传值。
本次用到的主要的jar包如下:
- <李>
javax.mail-1.6.0.jar
李> <李>激活。jar
代码如下:
EmailSendController。java
package com.yang.controller; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.yang.util.Email_Send_Util; @ controller @RequestMapping (“/email") public class  EmailSendController {=,@RequestMapping (value “/send.do") ,@ResponseBody ,public boolean  impotr (HttpServletRequest 请求),{ ,String toMail =, request.getParameter (“toMail"); ,String myMail =, request.getParameter (“myMail"); ,String userPwd =, request.getParameter (“userPwd"); ,System.out.println (, toMail + myMail + userPwd); bool, boolean =Email_Send_Util.send (, toMail、myMail, userPwd); ,return bool ; ,} }
认证。java
package com.yang.util; import javax.mail.Authenticator; import javax.mail.PasswordAuthentication; public class  Authentication extends Authenticator  { ,String username =,空; ,String password =,空; ,public 身份验证(),{ ,} ,public 身份验证(String 用户名,String 密码),{ 时间=this.username 才能;用户名;=,this.password 密码; ,} ,protected PasswordAuthentication  getPasswordAuthentication () { ,PasswordAuthentication pa =, new PasswordAuthentication(用户名,密码); ,return pa; ,} }
CreateMimeMessage。java
package com.yang.util; import java.io.File; import java.util.Date; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.Message.RecipientType; import javax.mail.Address; import javax.mail.Message; import javax.mail.Session; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import javax.mail.internet.MimeUtility;/* * ,*创建一封复杂邮件(文本+图片+附件) ,*/public class  CreateMimeMessage { ,public static  MimeMessage createMimeMessage (Session 会话,String myMail,, String toMail), throws Exception { ,//1只创建邮件对象 ,MimeMessage message =, new MimeMessage(会话); ,//2只:,发件的人 ,message.setFrom (new InternetAddress (myMail,“我的测试邮件_发件人昵称“,,“UTF-8")); ,//3只:,收件人(可以增加多个收件人,抄送,密送) ,message.addRecipient (RecipientType.TO, new InternetAddress (toMail,,“我的测试邮件_收件人昵称“,,“UTF-8")); ,//4只;主题:,邮件主题 ,message.setSubject(“测试邮件主题(文本+图片+附件),,,“UTF-8"); ,//抄送人 ,Address ccAddress =, new InternetAddress (“* * * * * * * * * @qq.com",,“我的测试邮件_抄送人昵称“,,“UTF-8"); ,message.addRecipient (Message.RecipientType.CC, ccAddress); ,/* ,*下面是邮件内容的创建: ,*/,//5只创建图片”节点” ,MimeBodyPart image =, new MimeBodyPart (); ,File File =, new 文件(“D: \ \ Chat_Software \ \ sky.JPG"); ,DataHandler dh =, new DataHandler (new FileDataSource(文件));,//,读取本地文件 ,image.setDataHandler (dh);,//,将图片数据添加到“节点” ,//image.setContentID (“image_fairy_tail");//,为“节点“设置一个唯一编号(在文本节“点”将引用该ID) ,image.setFileName (MimeUtility.encodeText (file.getName ())); , ,//6只创建文本节“点” ,MimeBodyPart text =, new MimeBodyPart (); null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null使用JavaWeb怎么实现邮件发送功能