上一次我们已经学习如何将邮件保存到本地,今天我们来了解一下如何实现在互联网上实现发邮箱。
注意
:
上次提到要导入
jar
包,记得删除
MyEclipes
中的
mail.jar
包
1
、创建包含邮件服务器的网络连接信息的
Session
对象。
2
、创建代表邮件内容的
Message
对象。
3
、创建
Transport
对象、连接服务器、发送
Message
、关闭连接。
![](http://student.csdn.net/attachment/201103/3/1038651_1299156873r99S.png)
java代码如下
- import java.util.Properties;
- import javax.activation.DataHandler;
- import javax.activation.FileDataSource;
- import javax.mail.Message;
- import javax.mail.MessagingException;
- import javax.mail.Session;
- import javax.mail.Transport;
- import javax.mail.internet.AddressException;
- import javax.mail.internet.InternetAddress;
- import javax.mail.internet.MimeBodyPart;
- import javax.mail.internet.MimeMessage;
- import javax.mail.internet.MimeMultipart;
- //在提醒一下千万不要导错包
- public class SendMail {
- private static final String HOST = "smtp.sohu.com";//设置你邮件主机服务器名称(上一次已经提到)
- private static final String SMTP = "smtp";
- private static final String AUTH = "true";
- public static void main(String[] args) throws MessagingException {
- Properties props = new Properties();
- // 设置发送邮件的主机服务名称
- props.setProperty("mail.host", HOST);
- // 设置发送邮件的协议
- props.setProperty("mail.transport.protocol", SMTP);
- // 设置登录验证
- props.setProperty("mail.smtp.auth", AUTH);
- // 根据属性文件获取发送接收邮件环境对象
- Session session = Session.getDefaultInstance(props);
- // 根据环境对象创建一份邮件
- Message message = createMessage(session);
- // 根据环境对象获取发送邮件的对象
- Transport tsp = session.getTransport();
- // 调用发送邮件对象的登录连接验证的方法
- tsp.connect("你的邮箱帐号", "邮箱密码");
- // 调用发送邮件对象的发送邮件的方法发送邮件
- tsp.sendMessage(message, message.getAllRecipients());
- // 关闭
- tsp.close();
- }
- public static Message createMessage(Session session) { //此方法和保存在本地的邮件一样
- MimeMessage message = new MimeMessage(session);
- try {
- // 设置邮件头
- message.setFrom(new InternetAddress("你的邮箱帐号"));
- message.setRecipient(Message.RecipientType.TO, new InternetAddress(
- "对方邮箱帐号"));
- message.setSubject("测试带有图片的");
- // 设置邮件体
- MimeBodyPart part = new MimeBodyPart();
- part.setContent("中国....<br/><img src='cid:xx.jpg'>",
- "text/html;charset=utf8");
- MimeBodyPart image = new MimeBodyPart();
- image.setDataHandler(new DataHandler(new FileDataSource(
- "图片路径")));
- image.setContentID("xx.jpg");
- // 设置描述关系
- MimeMultipart mp = new MimeMultipart();
- mp.addBodyPart(part);
- mp.addBodyPart(image);
- mp.setSubType("related");
- message.setContent(mp);
- message.saveChanges();
- } catch (AddressException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (MessagingException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return message;
- }
- }