📄 sendmailservlet.java~30~
字号:
package mulmail;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.Message.RecipientType;
import javax.mail.Session;
import javax.mail.internet.MimeMessage;
import javax.mail.Multipart;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeBodyPart;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.activation.DataHandler;
import javax.mail.BodyPart;
import mail.MyAuthenticator;
public class SendMailServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GB18030";
//Initialize global variables
public void init() throws ServletException {
}
//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
response.setContentType(CONTENT_TYPE) ;
PrintWriter out = response.getWriter() ;
request.setCharacterEncoding("GBK") ;
//发件人使用发邮件的电子信箱服务器
String host = request.getParameter("server") ;
//发邮件的出发地(发件人的信箱)
String from = request.getParameter("from") ;
//发件人的密码
String psw = request.getParameter("password") ;
//发邮件的目的地(收件人信箱)
String to = request.getParameter("to") ;
//发邮件的主题
String subject = request.getParameter("subject");
//发送的附件
String fileAttachment = request.getParameter("attachment") ;
//发邮件的内容
String content = request.getParameter("content");
try
{
// 返回Properties对象
Properties props = System.getProperties();
// 设置邮件服务器的连接协议
props.put("mail.smtp.host", host);
// 设置认证
props.put("mail.smtp.auth", "true");
//传递认证的参数
MyAuthenticator myauth = new MyAuthenticator(from,psw);
//获得session对象
Session session = Session.getDefaultInstance(props, myauth);
//传递参数,生成message对象。
MimeMessage message = new MimeMessage(session);
// 设置发件人的地址
message.setFrom(new InternetAddress(from));
// 设置收件人的地址以及接收的方式
message.addRecipient(RecipientType.TO,new InternetAddress(to));
// 设置主题
message.setSubject(subject);
//生成一个MimeBodyPart对象,用来存放信件内容
MimeBodyPart messageBodyPart = new MimeBodyPart();
//把信件的内容装入messageBodyPart
messageBodyPart.setText(content) ;
//新建一个MimeMultipart对象用来存放BodyPart对象(事实上可以存放多个)
Multipart multipart = new MimeMultipart();
//把messageBodyPart(信件的内容)添加到multipart 中
multipart.addBodyPart(messageBodyPart) ;
//再生成一个MimeBodyPart对象,用来存放附件
messageBodyPart = new MimeBodyPart();
//以路径作为参数生成某数据源
DataSource source = new FileDataSource(fileAttachment);
//给messageBodyPart(附件)设置内容为source的内容
messageBodyPart.setDataHandler(new DataHandler(source)) ;
//给messageBodyPart(附件)设置的名字为原文件的名字
messageBodyPart.setFileName(fileAttachment) ;
//把messageBodyPart(附件)也添加到multipart中
multipart.addBodyPart(messageBodyPart) ;
//把multipart作为消息对象的内容
message.setContent(multipart) ;
//发送消息
Transport.send(message);
out.print("发送成功") ;
}
catch(Exception e)
{
System.out.println(e) ;
}
}
//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
doGet(request, response);
}
//Clean up resources
public void destroy() {
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -