⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smtpsender.java

📁 关于JAVA邮件开发的源代码...很有参考价值的源代码
💻 JAVA
字号:
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;

import java.util.Properties;
import java.util.Date;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.Message;
import javax.mail.internet.MimeMessage;


public class SMTPSender 
{
	public static void main(String[] args) throws Exception
	{
		//下面是邮件要群发给的多个收件人地址
		String [] to = {"it315_test@sohu.com","it315_test@sina.com",
							"it315_test@163.com","it315_test@126.com"};
     
		//创建Session对象
		Properties props = new Properties();
		/*mail.smtp.localhost属性用于设置SMTP协议的EHLO命令中的
		主机名,其他SMTP服务器可能需要使用这个主机名确定发件SMTP
		服务器的身份,这个信息可以从JavaMail的javadocs文档中的
		com.sun.mail.smtp包的帮助页面内查看到。
		*/
		props.setProperty("mail.smtp.localhost","mail.itcast.cn"); 
		Session session = Session.getInstance(props);
		session.setDebug(true);

		Message msg = createMessage(session);
		for(int i=0; i<to.length; i++)
		{
			try
{
				sendMessage(session,msg,to[i]);
			}
catch(Exception e)
			{
				e.printStackTrace();
			}
		}
	}
	
	public static Message createMessage(Session session)
				throws Exception
	{

		String from = "it315_test@sina.com ";//发件人地址
		String subject = "SMTPSender demo";//邮件主题
		String body = "SMTPSender demo";//邮件内容
		
		//创建代表邮件的MimeMessage对象,不包含收件人地址
		MimeMessage msg = new MimeMessage(session);
		msg.setFrom(new InternetAddress(from)); 
		msg.setSentDate(new Date());
		msg.setSubject(subject); 
		msg.setText(body);
		return msg;		
	}
	
	public static void sendMessage(Session session,Message msg,String to)
			throws Exception
	{
		//设置邮件内容的收件人并生成邮件消息内容
		msg.setRecipients(Message.RecipientType.TO,
							InternetAddress.parse(to)); 
		msg.saveChanges();
		
		//连接收件人地址所在的SMTP服务器并发送邮件
		Transport transport = session.getTransport("smtp");
		String domain = to.substring(to.indexOf("@")+1);
		String smtpServer = getSmtpServer(domain,null);
		transport.connect(smtpServer,null,null);
		transport.sendMessage(msg,
        				  msg.getRecipients(Message.RecipientType.TO));
		transport.close();		
	}
	
	public static String getSmtpServer(String domain,String dnsServer)
						throws Exception
	{
		DirContext ctx = new InitialDirContext();
		Attributes attrsMx = null;
		if(dnsServer != null)
		{
			attrsMx = ctx.getAttributes("dns:" + "//" + dnsServer + 
									"/" + domain, new String[]{"MX"});
		}
		else
		{
			attrsMx = ctx.getAttributes("dns:" + "/" + domain, new String[]{"MX"});			
		}			

		String recordMx = (String)attrsMx.get("MX").get();
		String smtpServer = recordMx.substring(
							recordMx.indexOf(" ") + 1);
		return smtpServer;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -