package com.tuqiang.parseprop;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Message.RecipientType;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.naming.NamingException;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
/**
* 读取SMTP的IP地址
* @author 王文莉
*/
public class ReadSmtpIp {
public static void main(String[] args)
{
try {
send("562341256@qq.com", "woerwoni@163.com", "收件人你好", "在做邮件发送测试......", "text/html;charset=UTF-8");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static String getHost(String address)
{
return address.substring(address.indexOf("@") + 1);
}
public static void send(String to, String from, String subject, String content, String contentType) throws Exception {
Properties props = new Properties();
props.put("mail.smtp.localhost", getHost(from));
String[] servers = getHostIp(getHost(to));
for (String server : servers) {
try {
props.setProperty("mail.smtp.host", server);
Session session = Session.getInstance(props, null);
MimeMessage message = new MimeMessage(session);
message.setContent(content, contentType);
message.setSender(new InternetAddress(from));
message.setFrom(new InternetAddress(from));
message.setRecipient(RecipientType.TO, new InternetAddress(to));
message.setSubject(subject);
message.setHeader("Content-Type", contentType);
message.setHeader("Content-Transfer-Encoding", "7bit");
SimpleDateFormat format = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
//SimpleDateFormat format = new SimpleDateFormat("YYYY-MM-DD HH:mm:ss");
Date date = new Date();
long time = date.getTime() - (long)24 * 60 * 60 *60;
date.setTime(time);
System.out.println( format.format(date));
message.setHeader("Date", format.format(date));
Transport.send(message, new Address[] { new InternetAddress(to) });
System.out.println("break hello===============");
break;
} catch (RuntimeException e)
{
e.printStackTrace();
}
}
}
public static String[] getHostIp(String to)
{
try {
Properties jndiEnvironmentProperties = new Properties();
jndiEnvironmentProperties.put("java.naming.factory.initial", "com.sun.jndi.dns.DnsContextFactory");
DirContext initialDirContext = new InitialDirContext(jndiEnvironmentProperties);
Attributes attributes = initialDirContext.getAttributes(to, new String[] {"MX"});
Attribute attribute = attributes.get("MX");
String[] servers = new String[attribute.size()];
for (int i = 0; i < attribute.size(); i++) {
servers[i] = attribute.get(i).toString();
}
String[] host = new String[servers.length];
int i = 0;
for (String server : servers)
{
server = server.substring(server.indexOf(" ") + 1, servers[0].length() - 1);
host[i] = server;
i++;
}
return host;
} catch (NamingException e) {
e.printStackTrace();
}
return null;
}
}
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Message.RecipientType;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.naming.NamingException;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
/**
* 读取SMTP的IP地址
* @author 王文莉
*/
public class ReadSmtpIp {
public static void main(String[] args)
{
try {
send("562341256@qq.com", "woerwoni@163.com", "收件人你好", "在做邮件发送测试......", "text/html;charset=UTF-8");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static String getHost(String address)
{
return address.substring(address.indexOf("@") + 1);
}
public static void send(String to, String from, String subject, String content, String contentType) throws Exception {
Properties props = new Properties();
props.put("mail.smtp.localhost", getHost(from));
String[] servers = getHostIp(getHost(to));
for (String server : servers) {
try {
props.setProperty("mail.smtp.host", server);
Session session = Session.getInstance(props, null);
MimeMessage message = new MimeMessage(session);
message.setContent(content, contentType);
message.setSender(new InternetAddress(from));
message.setFrom(new InternetAddress(from));
message.setRecipient(RecipientType.TO, new InternetAddress(to));
message.setSubject(subject);
message.setHeader("Content-Type", contentType);
message.setHeader("Content-Transfer-Encoding", "7bit");
SimpleDateFormat format = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
//SimpleDateFormat format = new SimpleDateFormat("YYYY-MM-DD HH:mm:ss");
Date date = new Date();
long time = date.getTime() - (long)24 * 60 * 60 *60;
date.setTime(time);
System.out.println( format.format(date));
message.setHeader("Date", format.format(date));
Transport.send(message, new Address[] { new InternetAddress(to) });
System.out.println("break hello===============");
break;
} catch (RuntimeException e)
{
e.printStackTrace();
}
}
}
public static String[] getHostIp(String to)
{
try {
Properties jndiEnvironmentProperties = new Properties();
jndiEnvironmentProperties.put("java.naming.factory.initial", "com.sun.jndi.dns.DnsContextFactory");
DirContext initialDirContext = new InitialDirContext(jndiEnvironmentProperties);
Attributes attributes = initialDirContext.getAttributes(to, new String[] {"MX"});
Attribute attribute = attributes.get("MX");
String[] servers = new String[attribute.size()];
for (int i = 0; i < attribute.size(); i++) {
servers[i] = attribute.get(i).toString();
}
String[] host = new String[servers.length];
int i = 0;
for (String server : servers)
{
server = server.substring(server.indexOf(" ") + 1, servers[0].length() - 1);
host[i] = server;
i++;
}
return host;
} catch (NamingException e) {
e.printStackTrace();
}
return null;
}
}