标签:vat 秘密 frame property 编译 handler 上层 rgs ddb
Java 发送邮件
使用Java应用程序发送E-mail十分简单,但是首先你应该在你的机器上安装JavaMail API 和Java Activation Framework (JAF) 。
你可以在 JavaMail (Version 1.2) 下载最新的版本。
你可以再 在JAF (Version 1.1.1)下载最新的版本。
下载并解压这些文件,最上层文件夹你会发现很多的jar文件。你需要将mail.jar和activation.jar 添加到你的CLASSPATH中。
发送一封简单的 E-mail
下面是一个发送简单E-mail的例子。假设你的localhost已经连接到网络。
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
public class SendEmail{
	public static void main(String[] args){
		
		// 收件人电子邮箱
		String to = "abcd@gmail.com";
		
		//发件人电子邮箱
		String from = "web@gmail.com";
		
		//指定发送邮件的主机为 localhost
		String host = "localhost";
		
		//获取系统属性
		Properties properties = System.getProperties();
		
		//设置邮件服务器
		properties.setProperty("mail.smtp.host",host);
		
		//获取默认session 对象
		Session session = Session.getDefaultInstance(properties);
		
		try{
			//创建 默认的 MimeMessage对象
			MimeMessage message = new MimeMessage(session);
			
			// Set From :头部头字段
			message.setFrom(new InternetAddress(from));
			
			// Set To: 头部头字段
			message.addRecipient(Message.RecipientType.To,
			new InternetAddress(to));
			
			// Set Subject :头部头字段
			message.setSubject("This is the Subject Line");
			
			// 设置消息体
			message.setText("This is actual message");
			
			//发送消息
			Transport.send(message);
			System.out.println("Sent message successfully....");
			
		}catch(MessagingException mex){
			mex.printStackTrace();
		}
		
	}
}
编译并运行这个程序来发送一封简单的E-mail:
$ java SendEmail
Sent message successfully....
如果你想发送一封e-mail给多个收件人,那么使用下面的方法来指定多个收件人ID:
void addRecipients(Message.RecipientType type,
                   Address[] addresses)
throws MessagingException
下面是对于参数的描述:
type:要被设置为TO, CC 或者BCC. 这里CC 代表抄送、BCC 代表秘密抄送y. 举例:Message.RecipientType.TO
addresses: 这是email ID的数组。在指定电子邮件ID时,你将需要使用InternetAddress()方法。
发送一封HTML E-mail
下面是一个发送HTML E-mail的例子。假设你的localhost已经连接到网络。
和上一个例子很相似,除了我们要使用setContent()方法来通过第二个参数为"text/html",来设置内容来指定要发送HTML内容。
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
public class SendHTMLEmail{
	
	public static void main(String[] args){
		
		// 收件人电子邮箱
		String to = "ghf@gmail.com";
		
		// 发件人电子邮箱
		String from = "web$gmail.com";
		
		//指定发送邮件的主机为 localhost
		String host = "localhost";
		
		//获取系统属性
		Properties properties = System.getProperties();
		
		//设置邮件服务器
		properties.setProperty("mail.smtp.host",host);
		
		//获取默认的Session 对象
		Session session = Session.getDefaultInstace(properties);
		
		try{
			//创建默认的 MimeMessage 对象
			MimeMessage message = new MimeMessage(session);
			
			// Set From: 头部头字段
			message.setFrom(new InternetAddress(from));
			
			// Set To: 头部头字段
			message.addRecipient(Message.RecipientType.TO,
			new InternetAddress(to));
			
			// Set Subject :头字段
			message.setSubject("This is the Subject Line");
			
			//发送 HTML 消息,可以插入html标签
			message.setContent(
			"<h1> This is actual message </h1>","text/html");
			
			//发送消息
			Transport.send(message);
			
			System.out.println("Sent message successful ...");
			
		}catch(MessagingException mex){
			mex.printStackTrace();
		}
		
	}
}
编译并运行此程序来发送HTML e-mail:
$ java SendHTMLEmail
Sent message successfully....
发送带有附件的 E-mail
下面是一个发送带有附件的 E-mail的例子。假设你的localhost已经连接到网络。
// 文件名   SendFileEmail.java
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
public class SendFileEmail{
	public static void main(String[] args){
		
		//收件人电子邮箱
		String to = "ghf@qq.com";
		
		//发件人电子邮箱
		String from = "web@qq.com";
		
		//指定发送邮件的主机为 localhost
		String host = "localhost";
		
		//获取系统属性
		Properties properties = System.getProperties();
		
		//设置邮件服务器
		properties.setProperty("mail.smtp.host",host);
		
		// 获取默认的Session 对象
	    Session session = Session.getDefaultInstace(properties);
		
		try{
			//创建默认的 MimeMessage 对象
			MimeMessage message = new MimeMessage(session);
			
			message.setFrom(new InternetAddress(from));
			message.addRecipient(Message.RecipientType.TO,
			new InternetAddress(to));
			
			message.setSubject("This is the Subject Line!");
			
			BodyPart messageBodyPart = new MimeBodyPart();
			
			messageBodyPart.setText("This is message body");
			
			Multipart multipart = new MimeMultipart();
			multipart.addBodyPart(messageBodyPart);
			
			messageBodyPart = new MimeBodyPart();
			String filename = "file.txt";
			DataSource source = new FileDataSource(filename);
			
			messageBodyPart.setDataHandler(new DataHandler(source));
			
			messageBodyPart.setFileName(filename);
			multipart.addBodyPart(messageBodyPart);
			
			messsage.setContent(multipart);
			
			Transport.send(message);
			System.out.println("Sent message successfully...");		
			
		}catch(MessagingException mex){
			mex.printStackTrace();
		}
		
	}
}
编译并运行你的程序来发送一封带有附件的邮件。
$ java SendFileEmail
Sent message successfully....
用户认证部分
如果需要提供用户名和密码给e-mail服务器来达到用户认证的目的,你可以通过如下设置来完成:
props.setProperty("mail.user","myuser");
props.setProperty("mail.password","mypwd");
e-mail其他的发送机制和上述保持一致。
标签:vat 秘密 frame property 编译 handler 上层 rgs ddb
原文地址:https://www.cnblogs.com/Alanf/p/9544053.html