我第一次用javamail
在运行的时候总是出现:javax.mail.MessagingException: Could not connect to SMTP host: smtp.163.net, port: 25;
  nested exception is:
java.net.SocketException: Permission denied: connect我的程序大概是:
Properties props = System.getProperties();
props.put("mail.smtp.host",host);
props.put("mail.smtp.auth", "true"); 
Session session = Session.getDefaultInstance(props, null);
Transport transport = session.getTransport("smtp");
transport.connect("smtp.163.com", "name", "passport");
就在这里出错了
请问,这该怎么办?
谢谢

解决方案 »

  1.   

    要是有一个例子,登陆smtp.163.com,直接更改一下用户名和密码就能发出一份最简单的邮件就好了
    谢谢
      

  2.   

    Permission denied.禁止访问??
      

  3.   

    Session session = Session.getDefaultInstance(props, null); 
    后面的null参数,要传递javax.mail.Authenticator的一个实例
      

  4.   

    javax.mail.Authenticator的继承类是javax.mail.PasswordAuthentication
    PasswordAuthentication passwordAuth=new PasswordAuthentication(username,password);
      

  5.   

    看看下面的例子吧,下面是发送邮件的例子:package com.shobos.email;import java.util.Properties;
    import java.util.Random;import javax.mail.Authenticator;
    import javax.mail.Message;
    import javax.mail.PasswordAuthentication;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;public class SendMail { /**
     * 
     * @param from  来自于哪里
     * @param to    发送的目标地址
     * @param subject    发送主题
     * @param bodyContent   发送内容
     */
    public static void sendEmail(String from, String to, String subject,
    String bodyContent) {

    final String emailUserName = "";    //自己的邮箱地址
    final String emailUserPass = "";    //自己的邮箱密码
    try {
    Properties props = System.getProperties();
    props.put("mail.smtp.host", "smtp.163.com");
    props.put("mail.smtp.auth", "true");
    Session session = Session.getDefaultInstance(props,
    new Authenticator() {
    public PasswordAuthentication getPasswordAuthentication() {
    return new PasswordAuthentication(
    emailUserName, emailUserPass);
    }
    });
    MimeMessage message = new MimeMessage(session);
    message.setFrom(new InternetAddress(from));
    message.addRecipient(Message.RecipientType.TO, new InternetAddress(
    to)); message.setSubject(subject);
    message.setContent(bodyContent, "text/html;charset=utf-8"); message.saveChanges();
    Transport.send(message);
    } catch (Exception e) {
    e.printStackTrace();
    }
    } public static void main(String[] args) {
    String[] array = new String[] { "哈", "和", "嘻", "我", "你", "他", "世", "界",
    "非", "爱", "常", "谭", "最", "谈", "笑", "疯", "声", "挥", "斥", "方",
    "遒", "邻", "居", "中", "文", "家", "乡", "稻", "田", "中", "绿", "油",
    "油", "的", "禾", "苗", "在", "春", "风", "的", "浮", "动", "下", ",",
    "向", "农", "民", "叔", "叔", "阿", "姨", "招", "手", "像", "是", "在",
    "说", "我", "已", "经", "健", "康", "茁", "壮", "的", "成", "长", "了",
    "你", "们", "放", "心", "吧", "到", "时", "候", "我", "会", "给", "大",
    "家", "带", "来", "惊", "奇", "这", "时", "太", "阳", "懒", "洋", "洋",
    "的", "从", "云", "朵", "中", "爬", "了", "出", "来", "这", "给", "了",
    "大", "地", "淋" };
    int i = 0;
    Random rand = new Random();
    String from = "";
    String to = "";
    while (i < 5) {
    String str = "";
    for (int j = 0; j < 10; j++) {
    int r = rand.nextInt(100 - 1) + 1;
    str += array[r];
    }
    i++;
    sendEmail(from, to, i + " hello "
    + i, str);
    System.out.println("i------" + i);
    try {
    Thread.sleep(30000);
    } catch (InterruptedException e) {
    e.printStackTrace();
    } }
    }
    }
      

  6.   

    LZ我这里有sina的例子 你可以试试 现在好像126和163的都不能发 。。
    import   java.util.*;   import javax.mail.Message;
    import javax.mail.Session;
    import javax.mail.Transport;
    import   javax.mail.internet.*;   
    import   java.io.*;   
      
    /**   
    *   @author   Bromon   
    */   
    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   =   System.getProperties();   
      props.put("mail.smtp.host",   host);//指定SMTP服务器   
      
      props.put("mail.smtp.auth",   "true");//指定是否需要SMTP验证   
      try   
      {   
        Session     mailSession   =   Session.getDefaultInstance(props,   null);   
      
      
        mailSession.setDebug(true);//是否在控制台显示debug信息   
      
        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   =   mailSession.getTransport("smtp");   
      
        transport.connect(host,   user,   password);   
        transport.sendMessage(message,   message.getAllRecipients());   
        transport.close();   
      }catch(Exception   e)   
      {   
        e.printStackTrace();   
      }   
      
    }   
      
      
      
    public   static   void   main(String   args[])   
    {   
      SenderWithSMTPVer   sm=new   SenderWithSMTPVer();   
      
      sm.setHost("smtp.sina.com");//指定要使用的邮件服务器   
      sm.setAccount("账号","密码");//指定帐号和密码   
      
      /*   
    *   @param   String   发件人的地址   
        *   @param   String   收件人地址   
        *   @param   String   邮件标题   
        *   @param   String   邮件正文   
      */   
      sm.send("[email protected]","[email protected]","标题","内容");   
    }   
    }  
      

  7.   


    想问一下,我照着你的例子配了一下,编译都没有问题,可以通过,但是在运行的时候时不时的就报Authentication异常,但有时又能正常运行,请问一下这是为什么?