终于实现通过java发送Internet邮件了!!!分享一下

 

上一次我们已经学习如何将邮件保存到本地,今天我们来了解一下如何实现在互联网上实现发邮箱。
 
注意 : 上次提到要导入 jar 包,记得删除 MyEclipes 中的 mail.jar
 
1 、创建包含邮件服务器的网络连接信息的 Session 对象。
2 、创建代表邮件内容的 Message 对象。
3 、创建 Transport 对象、连接服务器、发送 Message 、关闭连接。
 
 
 
 java代码如下
Code:
  1. import java.util.Properties;   
  2.     
  3. import javax.activation.DataHandler;   
  4. import javax.activation.FileDataSource;   
  5. import javax.mail.Message;   
  6. import javax.mail.MessagingException;   
  7. import javax.mail.Session;   
  8. import javax.mail.Transport;   
  9. import javax.mail.internet.AddressException;   
  10. import javax.mail.internet.InternetAddress;   
  11. import javax.mail.internet.MimeBodyPart;   
  12. import javax.mail.internet.MimeMessage;   
  13. import javax.mail.internet.MimeMultipart;   
  14. //在提醒一下千万不要导错包   
  15. public class SendMail {   
  16.     
  17.        private static final String HOST = "smtp.sohu.com";//设置你邮件主机服务器名称(上一次已经提到)   
  18.        private static final String SMTP = "smtp";   
  19.        private static final String AUTH = "true";   
  20.     
  21.        public static void main(String[] args) throws MessagingException {   
  22.               Properties props = new Properties();   
  23.               // 设置发送邮件的主机服务名称   
  24.               props.setProperty("mail.host", HOST);   
  25.               // 设置发送邮件的协议   
  26.               props.setProperty("mail.transport.protocol", SMTP);   
  27.               // 设置登录验证   
  28.               props.setProperty("mail.smtp.auth", AUTH);   
  29.               // 根据属性文件获取发送接收邮件环境对象   
  30.               Session session = Session.getDefaultInstance(props);   
  31.               // 根据环境对象创建一份邮件   
  32.               Message message = createMessage(session);   
  33.               // 根据环境对象获取发送邮件的对象   
  34.               Transport tsp = session.getTransport();   
  35.               // 调用发送邮件对象的登录连接验证的方法   
  36.               tsp.connect("你的邮箱帐号""邮箱密码");   
  37.               // 调用发送邮件对象的发送邮件的方法发送邮件   
  38.               tsp.sendMessage(message, message.getAllRecipients());   
  39.               // 关闭   
  40.               tsp.close();   
  41.     
  42.        }   
  43.     
  44.        public static Message createMessage(Session session) {            //此方法和保存在本地的邮件一样   
  45.     
  46.               MimeMessage message = new MimeMessage(session);   
  47.     
  48.               try {   
  49.                      // 设置邮件头   
  50.                      message.setFrom(new InternetAddress("你的邮箱帐号"));   
  51.                      message.setRecipient(Message.RecipientType.TO, new InternetAddress(   
  52.                                    "对方邮箱帐号"));   
  53.                      message.setSubject("测试带有图片的");   
  54.     
  55.                      // 设置邮件体   
  56.                      MimeBodyPart part = new MimeBodyPart();   
  57.                      part.setContent("中国....<br/><img src='cid:xx.jpg'>",   
  58.                                    "text/html;charset=utf8");   
  59.     
  60.                      MimeBodyPart image = new MimeBodyPart();   
  61.                      image.setDataHandler(new DataHandler(new FileDataSource(   
  62.                                    "图片路径")));   
  63.                      image.setContentID("xx.jpg");   
  64.     
  65.                      // 设置描述关系   
  66.                      MimeMultipart mp = new MimeMultipart();   
  67.                      mp.addBodyPart(part);   
  68.                      mp.addBodyPart(image);   
  69.                         
  70.                      mp.setSubType("related");   
  71.                      message.setContent(mp);   
  72.     
  73.                         
  74.                         
  75.                         
  76.                      message.saveChanges();   
  77.               } catch (AddressException e) {   
  78.                      // TODO Auto-generated catch block   
  79.                      e.printStackTrace();   
  80.               } catch (MessagingException e) {   
  81.                      // TODO Auto-generated catch block   
  82.                      e.printStackTrace();   
  83.               }   
  84.     
  85.               return message;   
  86.        }   
  87.     
  88. }   
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值