JSP发送邮件的源码78743
二(程序源码:
(,) 发送文本类型信件(这种是接收者收到后打开信箱后直接显示在邮件正文的(它
主要有两个程序: mailform.html and sendmail.jsp,另外三个程序为提交成功和不成功及
发生内部错误的处理程序(
mailform.html用来输入用户信息,然后提交
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
单
名单名单延期单出门单老板名单
给sendmail.jsp
sendmail.jsp 用来处理接收信息并处理信息,最后发送邮件(
<%--mailform.html 的源代码--%>
mailform.html
<%--sendmail.jsp 的源代码--%>
<%@page contentType="text/html;charset=gb2312"%>
<%@page errorPage="errpage.jsp"%>
<%@page import="java.util.*"%>
<%@page import="javax.mail.*"%>
<%@page import="javax.mail.internet.*"%>
<%@page import="javax.activation.*"%>
sendmail.jsp
<%
//邮件服务器的IP地址,注意此时使用的是SMTP 邮件服务器
//String host="202.102.240.76";
//获取用户信息
String to=request.getParameter("to");
String from=request.getParameter("from");
String cc=request.getParameter("cc");
String bcc=request.getParameter("bcc");
//结合本程序的第一句,共同起显示汉字体的功能
String subject=request.getParameter("subject");
subject = new java.lang.String(subject.getBytes("iso-8859-1"));
//以上方法等同于以下两句,原理相同
//byte[] subjectTemp=request.getParameter("subject").getBytes("ISO8859_1");
//String subject=new String(subjectTemp);
byte[] messageTextTemp=request.getParameter("body").getBytes("ISO8859_1");
String messageText= new String(messageTextTemp);
boolean sessionDebug = false;
//验证所填写的邮件是否正确
if((to.trim().indexOf("@")==-1)||(to.trim().length()<5)){
%>
<%
}
if((from.trim().indexOf("@")==-1)||(from.trim().length()<5)){
%>
<%
}
//获得系统属性对象,用下两句的任一句均可
//Properties props = System.getProperties();
Properties props=new Properties();
//设置SMTP主机
//以下一句是对任意的SMTP 邮件服务器均可,并且有了这一句,将不用设置传输
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
了
props.put("mail.smtp.host", "smtp.jspinsider.com");
//这样将确定接收方的邮件服务器主机,
//props.put("mail.host",host);
//设置邮件传输协议方式
//props.put("mail.transport.protocol","smtp");
//获取邮件会话对象
Session mailSession = Session.getDefaultInstance(props,null);
mailSession.setDebug(sessionDebug);
try{
//创建MIME邮件对象
Message msg = new MimeMessage(mailSession);
//设置发信人
msg.setFrom(new InternetAddress(from));
//设置收信人
InternetAddress[] addressTo = {new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO,addressTo);
//设置抄送人
if(cc.trim().length()!=0){
InternetAddress[] addressCc = {new InternetAddress(cc)};
msg.setRecipients(Message.RecipientType.CC,addressCc);
}
//设置暗送人
if(bcc.trim().length()!=0){
InternetAddress[] addressBcc = {new InternetAddress(bcc)};
msg.setRecipients(Message.RecipientType.BCC,addressBcc);
}
msg.setSubject(subject);
msg.setSentDate(new Date());
msg.setText(messageText);
//发送邮件
Transport.send(msg);
}
catch(Except
jsp如何实现发送电子邮件 2007年11月07日 星期三 下午 11:35
关键字:|发送到邮件功能实现|网站建设|功能组件|在线发邮件|文章发送到邮件|
一、准备工作很麻烦 整理:
1、下载javamail的包
java.sun.com/products/javamail/downloads/index.html
将 mail.jar 复制到 lib 目录中
2、下载activation 包
java.sun.com/products/javabeans/jaf/downloads/index.html
将activation.jar复制到 lib 目录中
3、再把服务器重启下
二、下面是一个简单的发送文本内容的例子,直接在jsp中进行操作。可以自己设置smtp
的地址,用户名和密码,这是javamail最简单的应用,它的功能超强,可以发附件,可以收
邮件等。
<%@page contentType="text/html;charset=gb2312"%> <%@ page
import="javax.mail.*,javax.activation.*,javax.mail.internet.*,java.util.*"%>
JavaMail 电子邮件发送
<%!
public class MailAuthenticator extends Authenticator{ String authenName;
String authenPass;
public MailAuthenticator(String authenName,String authenPass) { super();
this.authenName=authenName;
this.authenPass=authenPass;
}
public PasswordAuthentication getPasswordAuthentication(){ return new PasswordAuthentication(authenName,authenPass); }
}
%>
<%
MailAuthenticator ma = new MailAuthenticator("",""); //这里第一个参数是用户名,第二个是密码。 如果是匿名服务器,可以设置为空
Properties props = new Properties();
Session sendMailSession;
Transport transport;
sendMailSession = Session.getInstance(props,ma); Message newMessage = new MimeMessage(sendMailSession); newMessage.setFrom(new InternetAddress("test@test.com")); //发件人
newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("wxg_bj@yahoo.com.cn")); //目标邮箱
newMessage.setSubject("subject"); //这个是标题
newMessage.setSentDate(new Date());
newMessage.setText("text"); //文本内容
props.put("mail.smtp.host","192.168.0.1");//这里设置smtp服务器地址 ,我设置的是
本机
props.put("mail.smtp.auth","true");//这里true代表需要密码验证,如果是匿名服务器,可以设置为false,当然,设置为ture也无所谓,只要名和密码设置为空 transport = sendMailSession.getTransport("smtp");
try{
transport.send(newMessage);
//发送
}catch(Exception e){
System.out.println(e);
}
%>
项目导入mail.jar了吗?
protected PasswordAuthentication getPasswordAuthentication()
{
//这里的USER_NAME和USER_PWD分别写你的邮箱名和密码,不写密码怎么发送呢?
return new PasswordAuthentication(USER_NAME,USER_PWD);
//我看你是做了张jsp网页,然后通过request.getParameter获取页面值,那这也要接受的
}
这句话好象没写.
prop.put("mail.smtp.host",HOST_NAME);
最后补充一点.有时候代码完全正确,也会不能发送.因为你的邮箱没得到验证,近几年申请的普通邮箱都是没通过验证的.所以你是那种邮箱的话就没办法了.
SendAttanchment.jsp文件--------------------------------测试文件
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
My JSP 'SendAttanchment.jsp' starting page
User JavaMail to send emails:
AttachmentSender.java
完成邮件的以下一些操作:
1) 设置邮箱名,密码
2) 设置邮件的发送者,接收者,主题,正文,以及附件
3) 实现发送功能
package beans;
import java.util.Properties;
import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException; import javax.mail.NoSuchProviderException; import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart;
public class AttachmentSender {
private MimeMessage message;
private Properties props;
private Session session;
private MimeMultipart mp;
private String name = "";
private String password = "";
/**
* complete the initialization
* @param host
* @param name
* @param password
*/
public AttachmentSender(String host, String name, String password){
this.name = name;
this.password = password;
props = System.getProperties();
//set the SMTP host
props.put("mail.smtp.host", host); //set SMTP authorization
props.put("mail.smtp.auth", "true"); //get the mail session
MyAuthenticator auth = new MyAuthenticator(name,password);
session = Session.getDefaultInstance(props,auth); //create MIME mail object
message = new MimeMessage(session); mp = new MimeMultipart();
}
/**
* set mail sender
* @param from
*/
public void setFrom(String from){ try {
message.setFrom(new InternetAddress(from));
} catch (AddressException e) { // TODO Auto-generated catch block e.printStackTrace();
} catch (MessagingException e) { // TODO Auto-generated catch block e.printStackTrace();
}
}
/**
* set mail recipient
* @param to
*/
public void setTo(String to){ try {
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
} catch (AddressException e) { // TODO Auto-generated catch block e.printStackTrace();
} catch (MessagingException e) { // TODO Auto-generated catch block e.printStackTrace();
}
}
/**
* set mail subject
* @param subject
*/
public void setSubject(String subject){ try {
message.setSubject(subject); } catch (MessagingException e) {
// TODO Auto-generated catch block e.printStackTrace();
}
}
/**
* set the mail content
* @param content
*/
public void setContent(String content){ try{
BodyPart bp = new MimeBodyPart(); bp.setContent(content,"text/html"); mp.addBodyPart(bp);
}catch(Exception e){
e.printStackTrace();
}
}
/**
* attach the file
* @param filename
*/
public void addAttachMent(String filename){
try{
BodyPart bp = new MimeBodyPart(); FileDataSource fileds = new FileDataSource(filename);
bp.setDataHandler(new DataHandler(fileds));
bp.setFileName(fileds.getName()); mp.addBodyPart(bp);
}catch(Exception e){
e.printStackTrace();
}
}
/**
* send mail
* @return
*/
public boolean send(){
try{
message.setContent(mp);
message.saveChanges();
//create SMTP sender object
Transport transport = session.getTransport("smtp");
//get the connection with server transport.connect((String) props.get("mail.smtp.host"),name,password);
//send the mail via server
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
transport.close();
return true;
}catch(NoSuchProviderException e){ e.printStackTrace();
return false;
}catch (MessagingException e){ e.printStackTrace();
return false;
}
}
}
SendAttachment.java
主要完成以下操作:
1) 解析从JSP传来的参数请求(邮件接收者,发送者,正文,附件)
2) 此处实现添加附件的方法是:先将附件上传至server的工程目录下,然后attach到邮件,然后删除上传到server上的文件
package servlets;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.File;
import java.util.Iterator;
import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.*;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import beans.AttachmentSender;
public class SendAttachment extends HttpServlet {
/**
* Constructor of the object.
*/
public SendAttachment() {
super();
}
/**
* Destruction of the servlet.
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log // Put your code here
}
/**
* The doGet method of the servlet.
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out
.println("");
out.println("");
out.println("
A Servlet");
out.println(" ");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the GET method"); out.println(" ");
out.println("");
out.flush();
out.close();
}
/**
* The doPost method of the servlet.
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred * @throws IOException if an error occurred */
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html"); PrintWriter out = response.getWriter();
//set the smtp address of sina
String host = "smtp.sina.com";
//set mailbox accountName
String accountName = "test";
//set mailbox password
String password = "pass";
//attachment
File uploadedFile = null;
//sender's address
String from = "";
//recipient's address
String to = "";
//mail subject
String subject = "";
//mail content
String content = "";
//upload the attachment to the server first
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if(isMultipart){
FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory);
Iterator items;
try{
items = upload.parseRequest(request).iterator(); while(items.hasNext()){
FileItem item = (FileItem) items.next(); if(!item.isFormField()){
//get the name of the upload file
String name = item.getName();
String fileName = name.substring(name.lastIndexOf('\\')+1,name.length());
String path = request.getRealPath(fileName); //upload the file
uploadedFile = new File(path);
item.write(uploadedFile);
}
else if(item.isFormField()){
//get the parameter from the form
if(item.getFieldName().equals("from")){ from = item.getString();
}
else if(item.getFieldName().equals("to")){ to = item.getString();
}
else if(item.getFieldName().equals("subject")){ subject = item.getString();
}
else if(item.getFieldName().equals("content")){ content = item.getString();
}
}
}
}catch(Exception e){
e.printStackTrace();
}
}
//set mail info
AttachmentSender sender = new AttachmentSender(host,accountName,password);
sender.setFrom(from);
sender.setSubject(subject);
sender.setTo(to);
sender.setContent(content);
if(uploadedFile != null){
String attachment = request.getRealPath(uploadedFile.getName());
sender.addAttachMent(attachment);
}
//print the result
if(sender.send()){
out.print("Send mail successfully!"); }
else{
out.print("Send mail failed!");
}
//delete the file on the server after send the mail if(uploadedFile.exists())
uploadedFile.delete();
}
/**
* Initialization of the servlet.
*
* @throws ServletException if an error occurs */
public void init() throws ServletException { // Put your code here
}
}
MyAuthenticator.java
package beans;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
public class MyAuthenticator extends Authenticator{ String name;
String password;
public MyAuthenticator(String name, String password){
this.name = name;
this.password = password;
getPasswordAuthentication();
}
protected PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication(name,password); }
}
本篇文章来源于:实例
教程
人力资源管理pdf成真迷上我教程下载西门子数控教程protel99se入门教程fi6130z安装使用教程
网(www.shilicn.com) 原文链接:
<%@ page contentType="text/html;charset=GB2312" %> <%@ page import="javax.mail.*" %>
<%@ page import="javax.mail.internet.*" %> <%@ page import="javax.activation.*" %> <%@ page import="java.util.*" %>
<%! String message;
%>
<%
try{
String strHost="smtp.163.com";
int nPort = 25; //smtp server port, usually is 25
String strUserName = "登陆时用户名";
String strPassWord = "登陆密码";
String strForm = "你的邮箱";
String strToList = "接受者MAIL地址";
String strCCList= "抄送给..." ;
String strBCCList="密送给....";
String strSubject = "邮件标题";
String strMessage = "邮件内容";
//create mail propertity.
Properties props = new Properties();
props.put("mail.smtp.host", strHost);
props.put("mail.smtp.auth", "true");
Session MailSession = Session.getDefaultInstance(props, null);
MailSession.setDebug(true);
//create message
Message msg = new MimeMessage(MailSession);
//from address
InternetAddress from = new InternetAddress(strForm);
msg.setFrom(from);
//to address
if (strToList!=null && strToList.length()>0){
InternetAddress[] to = { new InternetAddress(strToList) };
msg.setRecipients(Message.RecipientType.TO, to);
}
else{
System.out.println ("Get send to addresses failed!");
}
//copy to
if (strCCList!=null && strCCList.length()>0){
InternetAddress[] cc = { new InternetAddress(strCCList) };
msg.setRecipients(Message.RecipientType.CC, cc);
}
else
System.out.println ("Get copy to addresses failed!");
//secret to
if (strBCCList!=null && strBCCList.length()>0){
InternetAddress[] bcc = { new InternetAddress(strBCCList) };
msg.setRecipients(Message.RecipientType.BCC, bcc);
}
else
System.out.println ("Get secret to addresses failed!");
//add mail subject
if (strSubject != null)
msg.setSubject(strSubject);
//add mail date
msg.setSentDate(new Date());
//add mail body
if (strMessage!=null && strMessage.trim().length()>0){
msg.setText(strMessage);
}
else
msg.setText("No message to be send!");
//send mail
int nMailPort = -1;
if (nPort > 0)
nMailPort = nPort;
Transport transport = MailSession.getTransport("smtp");
transport.connect(strHost, nMailPort, strUserName, strPassWord);
transport.sendMessage(msg, msg.getAllRecipients());
transport.close();
message = "send successful!";
//System.out.println ("mail send success!");
}
catch(AuthenticationFailedException ae){
ae.printStackTrace();
}
catch(SendFailedException sf){
Address[] invalid = sf.getInvalidAddresses();
Address[] valid = sf.getValidSentAddresses();
Address[] unsend = sf.getValidUnsentAddresses();
sf.printStackTrace();
}
catch(Exception e){
e.printStackTrace();
}
%>
<%=message%>