CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

开发邮件系统的疑问?急!!

楼主Aniu1234()2005-05-12 23:44:12 在 Java / Web 开发 提问

我利用MDaemon软件构建了一个邮件服务器  
  设ip为219.196.78.91  
  两个用户为:aniu和ronghui  
  邮件主机名为:@SAW.com。  
   
   
  java代码如下:  
   
  package   com.jspdev.ch5;  
  import   javax.mail.*;  
  import   javax.mail.internet.*;  
  import   java.util.*;  
   
  public   class   Email1{  
   
   
  public   static   void   main(String[]   argv){  
   
  new   Email1(argv);  
   
  }  
  public   Email1(String[]   argv){  
  String   to   =   null;  
  String   from   =   null;  
  String   subject   =   null;  
  String   cc   =   null;  
  String   bcc   =   null;  
  String   mailhost   =   null;  
  String   content   =   null;  
  MimeMessage   mimeMsg=   null;  
  Session   session   =   null;  
  try{  
   
  mailhost   =   "218.196.78.91";  
  from   =   "ronghui@SAW.com";  
  to   =   "aniu@SAW.com";  
  subject   =   "hello";  
  content   =   "the   first   javamail";  
  Properties   props   =     System.getProperties();  
  props.put("mail.smtp.host",mailhost);  
  session=   Session.getDefaultInstance(props,null);  
  mimeMsg.setFrom(new   InternetAddress(from));  
  if(to!=null){  
  mimeMsg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));  
  }  
  if(cc!=null){  
  mimeMsg.setRecipients(Message.RecipientType.CC,InternetAddress.parse(cc));  
  }  
  if(bcc!=null){  
  mimeMsg.setRecipients(Message.RecipientType.BCC,InternetAddress.parse(bcc));  
  }  
  mimeMsg.setSubject(subject,"GBK");  
  mimeMsg.setText(   content,"GBK");  
  mimeMsg.setSentDate(new   Date());  
  Transport.send(mimeMsg   );  
  System.out.println("email   send!");  
   
  }  
  catch(Exception   e){  
   
  e.printStackTrace();  
  }  
   
  }  
   
   
   
  }  
   
  编译能够通过,但是运行时出现如下错误:  
  java.lang.NullPointerException  
                        at   com.jspdev.ch5.Email1.<init><Email1.java:34>  
                        at   com.jspdev.ch5.Email1.main<Email1.java:11>  
   
  请大虾们指点,毕业设计要用,急啊!! 问题点数:40、回复次数:8Top

1 楼Aniu1234()回复于 2005-05-12 23:45:37 得分 0

我的毕业设计得用jsp做,我是想先用java执行一下,如果可以的话就好办了!  
  自己先顶一个!!Top

2 楼ipv(宁静致远)回复于 2005-05-13 09:03:25 得分 25

mimeMsg.setFrom(new   InternetAddress(from));  
  你上面MimeMessage   mimeMsg=   null;  
  所以空指针  
  如果只是发的话可以  
  我可以发给你一个Top

3 楼ipv(宁静致远)回复于 2005-05-13 09:05:11 得分 0

package   com.ipv.mail;  
   
  /**  
    *   Title:     发送简单邮件的类,不发送附件  
    *   Description: send   mail   using   smtp  
    *   Copyright:         Copyright   (c)   2002  
    *   Company: ces  
    *   @author wz  
    *   @version   1.0  
    */  
  import   java.util.*;  
  import   javax.mail.*;  
  import   java.io.*;  
  import   javax.mail.internet.*;  
   
  public   class   SendMail   {  
      private   String   m_strFrom;   //从谁那边发出  
      private   String   m_strTo;   //发达哪个邮箱  
      private   String   m_strSmtpHost;   //从哪个SMTP服务器发出  
      private   String   m_strUser;   //从哪个用户下发邮件  
      private   String   m_strPassword;   //那个用户的密码是什么  
      private   String   m_strSubject;   //邮件主题  
      private   String   m_strContent;   //邮件内容  
   
      public   SendMail()   {  
          this.m_strFrom   =   "";  
          this.m_strTo   =   "";  
          this.m_strSmtpHost   =   "";  
          this.m_strUser   =   "";  
          this.m_strPassword   =   "";  
          this.m_strSubject   =   "";  
          this.m_strContent   =   "";  
      }  
   
      public   void   setFrom(String   strFrom)   {  
          this.m_strFrom   =   strFrom;  
      }  
   
      public   void   setTo(String   strTo)   {  
          this.m_strTo   =   strTo;  
      }  
   
      public   void   setSmtpHost(String   strSmtpHost)   {  
          this.m_strSmtpHost   =   strSmtpHost;  
      }  
   
      public   void   setUser(String   strUser)   {  
          this.m_strUser   =   strUser;  
      }  
   
      public   void   setPassword(String   strPassword)   {  
          this.m_strPassword   =   strPassword;  
      }  
   
      public   void   setSubject(String   strSubject)   {  
          this.m_strSubject   =   strSubject;  
      }  
   
      public   void   setContent(String   strContent)   {  
          this.m_strContent   =   strContent;  
      }  
   
      //发送邮件  
      public   void   send()   throws   MessagingException   {  
          Properties   props   =   new   Properties();  
          props.put("mail.smtp.host",   m_strSmtpHost);  
          props.put("mail.smtp.auth",   "true");  
          Session   s   =   Session.getInstance(props);  
          s.setDebug(false);  
          MimeMessage   message   =   new   MimeMessage(s);  
          // 给消息对象设置发件人/收件人/主题/发信时间  
          InternetAddress   from   =   new   InternetAddress(m_strFrom);  
          message.setFrom(from);  
          InternetAddress   to   =   new   InternetAddress(m_strTo);  
          message.setRecipient(Message.RecipientType.TO,   to);  
          message.setSubject(m_strSubject);  
          message.setSentDate(new   Date());  
          // 给消息对象设置内容  
          BodyPart   mdp   =   new   MimeBodyPart();   //新建一个存放信件内容的BodyPart对象  
          mdp.setContent(m_strContent,   "text/html;charset=gb2312");   //给BodyPart对象设置内容和格式/编码方式  
          Multipart   mm   =   new   MimeMultipart();   //新建一个MimeMultipart对象用来存放BodyPart对象(事实上可以存放多个)  
          mm.addBodyPart(mdp);   //将BodyPart加入到MimeMultipart对象中(可以加入多个BodyPart)  
          message.setContent(mm);   //把mm作为消息对象的内容  
          message.saveChanges();  
          Transport   transport   =   s.getTransport("smtp");  
          transport.connect(m_strSmtpHost,   m_strUser,   m_strPassword);  
          transport.sendMessage(message,   message.getAllRecipients());  
          transport.close();  
      }  
   
      public   boolean   sendMail(String   strFrom,   String   strTo,   String   strSubject,  
                                                      String   strContext)   {  
          String   strSMTPHOST   =   "";  
          String   strUSER   =   "";  
          String   strPASSWORD   =   "";  
          String   strSENDFROM   =   "";  
   
          InputStream   is   =   getClass().getResourceAsStream("db.properties");  
          Properties   dbProps   =   new   Properties();  
          try   {  
              dbProps.load(is);  
              strSMTPHOST   =   dbProps.getProperty("smtphost",   "");  
              strUSER   =   dbProps.getProperty("user",   "");  
              strPASSWORD   =   dbProps.getProperty("password",   "");  
              strSENDFROM   =   dbProps.getProperty("strfrom",   "");  
   
          }  
          catch   (Exception   e)   {  
   
          }  
          if   (strFrom   !=   null   &&   !strFrom.trim().equals(""))   {  
              strSENDFROM   =   strFrom;  
          }  
          this.setSmtpHost(strSMTPHOST);  
          this.setUser(strUSER);  
          this.setPassword(strPASSWORD);  
          this.setFrom(strSENDFROM);  
          this.setTo(strTo);  
          this.setSubject(strSubject);  
          this.setContent(strContext);  
          try   {  
              this.send();  
          }  
          catch   (Exception   e)   {  
              return   false;  
          }  
   
          return   true;  
      }  
   
      public   static   void   main(String[]   args)   {  
          SendMail   sendMail   =   new   SendMail();  
          boolean   aa   =   sendMail.sendMail("",   "tt@dsf.com",   "sdfs",   "sdfsdf");  
          System.out.println(aa);  
   
      }  
   
  }  
  Top

4 楼godhammer(梦醒时你已不在)回复于 2005-05-13 09:23:54 得分 15

发送正文时仅setText是不够的,不然发出的会没有正文  
   
  MimeBodyPart   bodypart=new   MimeBodyPart();  
  bodypart.setText(   content,"gbk");  
  mimemsg.addBodyPart(bodypart);  
   
  仅看到这一个;再找找.......  
   
  Top

5 楼godhammer(梦醒时你已不在)回复于 2005-05-13 09:25:48 得分 0

还有在开始的低级错误  
  public   static   void   main(String[]   argv){  
   
  是       Strings[]   args     吧     是sssssssssssssss,不是vvvvvvvvvvvvvvvvTop

6 楼godhammer(梦醒时你已不在)回复于 2005-05-13 09:26:49 得分 0

o   ,不好意思,看着急了,走眼了,呵呵,Top

7 楼Aniu1234()回复于 2005-05-13 16:44:54 得分 0

呵呵,谢谢大家  
  做毕业设计不能上网,郁闷!  
  只能每天来看几次,谢谢大家,我试试改改看Top

8 楼Aniu1234()回复于 2005-05-14 01:17:43 得分 0

还是不行啊!请问大家在做邮件系统的时候环境是如何搭的!具体的开发过程如何介绍一下。  
  qq:13283955  
  邮件:tommy_300@163.com  
  Top

相关问题

  • 邮件系统开发
  • 哪位开发过邮件服务系统的?
  • 在delphi7中如何利用indy 开发邮件收发系统?
  • 请问用APS.NET能开发邮件系统吗
  • C#开发邮件系统的一些疑惑和问题
  • 邮件系统?
  • 何处有开发免费邮件申请系统的参考书呢?
  • 寻找 linux 下的 大型邮件系统 开发,设计文档
  • iplanet的邮件系统的简单再开发,搞过的高手请帮忙
  • JBuilder + WebLogic 的开发疑问!

关键词

  • 邮件
  • 用户
  • null
  • mimemsg
  • strfrom
  • 毕业设计
  • internetaddress
  • mailhost
  • setfrom
  • saw

得分解答快速导航

  • 帖主:Aniu1234
  • ipv
  • godhammer

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo