免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3256 | 回复: 2
打印 上一主题 下一主题

请教javamail的Transport.send(msg)方法的异常处理 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-08-14 17:00 |只看该作者 |倒序浏览
我在调用Transport.send(msg);或transport.connect(host, user, password);时总是报:java.lang.NullPointerException
请问是什么原因,如何解决呢?谢谢!(注:在linux下调试,且可以正常解析smtp地址)
这是我网上找的例子!把测试的用户名等等换成实际的,就可以了!请各位高手指教!
import javax.mail.*;
import java.util.*;
import javax.mail.internet.*;


public class SenderWithSMTPVer
{
String host="";
String user="";
String password="";

public void setHost(String host)
{
  this.host=host;
}

public void setAccount(String user,String password)
{
  this.user=user;
  this.password=password;
}

public void send(String from,String to,String subject,String content)
{
  Properties props = new Properties();
  props.put("mail.smtp.host", host);
  props.put("mail.smtp.auth", "true";
  try
  {
   Session mailSession = Session.getDefaultInstance(props);
   
   mailSession.setDebug(true);
   
   Message message=new MimeMessage(mailSession);
   message.setFrom(new InternetAddress(from));
   message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
   
   message.setSubject(subject);
   message.setText(content);
   message.saveChanges();
   
   Transport transport =null;
   transport=mailSession.getTransport("smtp";
   if(transport==null)
                        {
                                System.out.println("999999";
                        }       
                       
   //Transport transport = mailSession.getTransport("smtp";
   System.out.println("111";
   System.out.println(host);
   System.out.println(user);
   System.out.println(password);
   transport.connect(host, user, password);
   System.out.println("222";
   transport.sendMessage(message, message.getAllRecipients());
   System.out.println("333";
   transport.close();
  }catch(Exception e)
  {
   System.out.println(e);
  }
  
}

public static void main(String args[])
{
  SenderWithSMTPVer sm=new SenderWithSMTPVer();

  sm.setHost("smtp.abc.com";
  sm.setAccount("abc","abcabc";

  
  sm.send("abc@abc.com","bcd@abc.com","biaoti","neirong";
}

}

论坛徽章:
0
2 [报告]
发表于 2005-08-18 14:29 |只看该作者

请教javamail的Transport.send(msg)方法的异常处理

记不清了,不过我记得好像是是smtp服务器都得进行密码验证方式指定
        SmtpAuthenticator sa = new SmtpAuthenticator();
            Properties props = System.getProperties();
            Session mailSession = Session.getInstance(props, sa);
试试

论坛徽章:
0
3 [报告]
发表于 2005-08-18 14:30 |只看该作者

请教javamail的Transport.send(msg)方法的异常处理

package Mail;
/**
*  wyn
*/
public class SmtpAuthenticator extends javax.mail.Authenticator
{
    // SMTP身份验证
    protected javax.mail.PasswordAuthentication getPasswordAuthentication(String username,String password)
    {
        return new javax.mail.PasswordAuthentication(username, password);
    }
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP