javamail的简单实现(不带附件)

[size=large][color=darkblue]实现javamail的方法
首先将activation.jar和mail.jar放入开发环境 并构建路径
activation.jar是在jaf框架的jar包

如果你使用了javaee的jar了只需要将activation.jar下载就ok了
新建一个web项目[/color][/size]

[color=brown][size=medium]1.信件jsp 不必多说了

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>

<html>
<head>

<title>My JSP 'sendmail.jsp' starting page</title>
</head>

<body>
send mail
<hr>
<form action="Send" method="post">
To:<input type="text" name="to"><br>
title:<input type="text" name="title"><br>
context:<textarea rows="3" cols="30" name=context>info</textarea>
<input type="submit" value="submit">
</form>
</body>
</html>

2.一个发送的servlet
package com.qxm.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Send extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
request.setCharacterEncoding("gb2312");
String to = request.getParameter("to");
String from = "wps@163.com";
String title = request.getParameter("title");
String context = request.getParameter("context");
//得到系统的信息放入properties中
Properties prop = System.getProperties();
//输入要发送到的地址的主机
prop.put("mail.smtp.host", "smtp.163.com");
//需要验证
prop.put("mail.smtp.auth", "true");
//得到session需要验证本地的 也就是你发送的地址的帐号和密码
//如果是在本机测试的话需要启动iis服务器,或是安装一个服务器软件 例如cmailserver
//如果是在本机测试的话 主机地址就是你的计算机名称
//创建一个session 得到session 直接创建 还有一个方法是getInstance();是查看是否存在session 如果不存在的话再创建一个session
Session session = Session.getDefaultInstance(prop,
new Authenticator() {
protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
return new javax.mail.PasswordAuthentication(
"wps@163", "123");//form的帐号密码
}
});
//用于测试 能够打印相关信息出来

session.setDebug(true);
//信件的信封 封装信件的所有信息 如果有附件或是多媒体信息最终都封装在这个类中
Message msg = new MimeMessage(session);
//设置发送人的地址
msg.setFrom(new InternetAddress(from));
//设置要发送的地址
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
//设置信件的标题
msg.setSubject(title);
//设置信件的内容
msg.setText(context);
msg.saveChanges();

Transport transport=session.getTransport("smtp");
transport.connect("smtp.163.com","要发送到的地址的邮箱","邮箱的密码");//以smtp方式登录邮箱
transport.sendMessage(msg,msg.getAllRecipients());//发送邮件,其中第二个参数是所有已设好的收件人地址
//发送

ransport.close();

out.print("send successful");
} catch (Exception ex) {
ex.printStackTrace();
}
}
}[/size][/color]

[color=red]注意:163这个邮箱的服务器是挺特殊的 他对于发送来的邮件需要验证你的发送放的ip地址
如果你的ip地址和你的主机名称一致才能允许你发送 否则他认为是垃圾邮件 总是报一个验证失败的异常 所以在本机上测试是比较不错的[/color]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值