跪求高手指点

解决方案 »

  1.   

    http://javazeke.iteye.com/blog/456837 参考下这个 其实就是邮件格式换成HTML类型的而已body.append("<a   href=\"http://mti-usb/PASI/Rej_Info/pasiEditPERej.jsp?id="+id+"\"><FONT   face=\"MS   UI   Gothic\"   size=\"3\"><b>點此進入</b></FONT></a>");  1、setText()有一个重载方法,第二参数为true表示用html展现
    public void setText(String text, boolean html) throws MessagingException;
    2、message应该是MimeMessage类型,而不是TextMessage类型 
      

  2.   

    先确定下:楼主会不会用Java来发送邮件的?发送邮件其实不复杂,有成熟的组件包:JavaMail,参见:
      http://developer.51cto.com/art/201203/322283.htm另外个问题是生成链接,这个更简单,因为邮件的正文本身就可以是一个HTML文档,你应该会写:
      <a href="xxxxxxxxxxxxxx">请点击此链接激活您的帐户</a>
      

  3.   

    邮件支持html格式,你只要在邮件正文里写上链接就可以了。
      

  4.   

    之前有帖子javamail发送带超链接的邮件的例子。
    http://topic.csdn.net/u/20120707/14/ecc0f65d-8996-48d7-bfbc-b82769e9797c.html
      

  5.   

    import java.util.Properties;import javax.mail.Authenticator;
    import javax.mail.Message;
    import javax.mail.Message.RecipientType;
    import javax.mail.PasswordAuthentication;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;public class EmailTest { public static void main(String[] args) throws Exception{
    Properties props = new Properties();
    props.setProperty("mail.smtp.auth", "true");
    props.setProperty("mail.transport.protocol", "smtp");
    props.setProperty("mail.host", "smtp.163.com");
    Session session = Session.getInstance(props,
    new Authenticator() {
    protected PasswordAuthentication getPasswordAuthentication(){
    return new PasswordAuthentication("xxx","xxx");//这里分别填写发送email的用户名、密码
    }
    }
    );
    session.setDebug(true);

    Message msg = new MimeMessage(session);
    msg.setFrom(new InternetAddress("xxx"));//这里是发送方的email地址如:[email protected]
    msg.setSubject("test javamail");
    msg.setRecipients(RecipientType.TO, 
    InternetAddress.parse("xxx"));//这里是接收方的email地址如:[email protected]
    msg.setContent("<a href=\"http://www.google.cn\">谷歌</a>","text/html;charset=gb2312"); 

    Transport.send(msg);
    }
    }
    上面是一个发送的简单的例子。
    包下载地址:
    http://www.oracle.com/technetwork/java/index-138643.html
      

  6.   

    找了点源代码。可还是出错了,跪求高手指点下
    package com.util.mail;
    /** 
    * 发送邮件需要使用的基本信息 
    */ 
    import java.util.Properties; 
    public class MailSenderInfo { 
    // 发送邮件的服务器的IP和端口 
    private String mailServerHost; 
    private String mailServerPort = "25"; 
    // 邮件发送者的地址 
    private String fromAddress; 
    // 邮件接收者的地址 
    private String toAddress; 
    // 登陆邮件发送服务器的用户名和密码 
    private String userName; 
    private String password; 
    // 是否需要身份验证 
    private boolean validate = false; 
    // 邮件主题 
    private String subject; 
    // 邮件的文本内容 
    private String content; 
    // 邮件附件的文件名 
    private String[] attachFileNames; 
    /** 
      * 获得邮件会话属性 
      */ 
    public Properties getProperties(){ 
      Properties p = new Properties(); 
      p.put("mail.smtp.host", this.mailServerHost); 
      p.put("mail.smtp.port", this.mailServerPort); 
      p.put("mail.smtp.auth", validate ? "true" : "false"); 
      return p; 

    public String getMailServerHost() { 
      return mailServerHost; 

    public void setMailServerHost(String mailServerHost) { 
      this.mailServerHost = mailServerHost; 
    }
    public String getMailServerPort() { 
      return mailServerPort; 
    }
    public void setMailServerPort(String mailServerPort) { 
      this.mailServerPort = mailServerPort; 
    }
    public boolean isValidate() { 
      return validate; 
    }
    public void setValidate(boolean validate) { 
      this.validate = validate; 
    }
    public String[] getAttachFileNames() { 
      return attachFileNames; 
    }
    public void setAttachFileNames(String[] fileNames) { 
      this.attachFileNames = fileNames; 
    }
    public String getFromAddress() { 
      return fromAddress; 

    public void setFromAddress(String fromAddress) { 
      this.fromAddress = fromAddress; 
    }
    public String getPassword() { 
      return password; 
    }
    public void setPassword(String password) { 
      this.password = password; 
    }
    public String getToAddress() { 
      return toAddress; 

    public void setToAddress(String toAddress) { 
      this.toAddress = toAddress; 

    public String getUserName() { 
      return userName; 
    }
    public void setUserName(String userName) { 
      this.userName = userName; 
    }
    public String getSubject() { 
      return subject; 
    }
    public void setSubject(String subject) { 
      this.subject = subject; 
    }
    public String getContent() { 
      return content; 
    }
    public void setContent(String textContent) { 
      this.content = textContent; 

      

  7.   

    package com.util.mail;import javax.mail.*;
      
    public class MyAuthenticator extends Authenticator{
    String userName=null;
    String password=null;
     
    public MyAuthenticator(){
    }
    public MyAuthenticator(String username, String password) { 
    this.userName = username; 
    this.password = password; 

    protected PasswordAuthentication getPasswordAuthentication(){
    return new PasswordAuthentication(userName, password);
    }
    }
     
      

  8.   

    package com.util.mail;import java.util.Date; 
    import java.util.Properties;
    import javax.mail.Address; 
    import javax.mail.BodyPart; 
    import javax.mail.Message; 
    import javax.mail.MessagingException; 
    import javax.mail.Multipart; 
    import javax.mail.Session; 
    import javax.mail.Transport; 
    import javax.mail.internet.InternetAddress; 
    import javax.mail.internet.MimeBodyPart; 
    import javax.mail.internet.MimeMessage; 
    import javax.mail.internet.MimeMultipart; /** 
    * 简单邮件(不带附件的邮件)发送器 
    */ 
    public class SimpleMailSender  { 
    /** 
      * 以文本格式发送邮件 
      * @param mailInfo 待发送的邮件的信息 
      */ 
    public boolean sendTextMail(MailSenderInfo mailInfo) { 
      // 判断是否需要身份认证 
      MyAuthenticator authenticator = null; 
      Properties pro = mailInfo.getProperties();
      if (mailInfo.isValidate()) { 
      // 如果需要身份认证,则创建一个密码验证器 
    authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword()); 
      }
      // 根据邮件会话属性和密码验证器构造一个发送邮件的session 
      Session sendMailSession = Session.getDefaultInstance(pro,authenticator); 
      try { 
      // 根据session创建一个邮件消息 
      Message mailMessage = new MimeMessage(sendMailSession); 
      // 创建邮件发送者地址 
      Address from = new InternetAddress(mailInfo.getFromAddress()); 
      // 设置邮件消息的发送者 
      mailMessage.setFrom(from); 
      // 创建邮件的接收者地址,并设置到邮件消息中 
      Address to = new InternetAddress(mailInfo.getToAddress()); 
      mailMessage.setRecipient(Message.RecipientType.TO,to); 
      // 设置邮件消息的主题 
      mailMessage.setSubject(mailInfo.getSubject()); 
      // 设置邮件消息发送的时间 
      mailMessage.setSentDate(new Date()); 
      // 设置邮件消息的主要内容 
      String mailContent = mailInfo.getContent(); 
      mailMessage.setText(mailContent); 
      // 发送邮件 
      Transport.send(mailMessage);
      return true; 
      } catch (MessagingException ex) { 
      ex.printStackTrace(); 
      } 
      return false; 


    /** 
      * 以HTML格式发送邮件 
      * @param mailInfo 待发送的邮件信息 
      */ 
    public static boolean sendHtmlMail(MailSenderInfo mailInfo){ 
      // 判断是否需要身份认证 
      MyAuthenticator authenticator = null;
      Properties pro = mailInfo.getProperties();
      //如果需要身份认证,则创建一个密码验证器  
      if (mailInfo.isValidate()) { 
    authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
      } 
      // 根据邮件会话属性和密码验证器构造一个发送邮件的session 
      Session sendMailSession = Session.getDefaultInstance(pro,authenticator); 
      try { 
      // 根据session创建一个邮件消息 
      Message mailMessage = new MimeMessage(sendMailSession); 
      // 创建邮件发送者地址 
      Address from = new InternetAddress(mailInfo.getFromAddress()); 
      // 设置邮件消息的发送者 
      mailMessage.setFrom(from); 
      // 创建邮件的接收者地址,并设置到邮件消息中 
      Address to = new InternetAddress(mailInfo.getToAddress()); 
      // Message.RecipientType.TO属性表示接收者的类型为TO 
      mailMessage.setRecipient(Message.RecipientType.TO,to); 
      // 设置邮件消息的主题 
      mailMessage.setSubject(mailInfo.getSubject()); 
      // 设置邮件消息发送的时间 
      mailMessage.setSentDate(new Date()); 
      // MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象 
      Multipart mainPart = new MimeMultipart(); 
      // 创建一个包含HTML内容的MimeBodyPart 
      BodyPart html = new MimeBodyPart(); 
      // 设置HTML内容 
      html.setContent(mailInfo.getContent(), "text/html; charset=utf-8"); 
      mainPart.addBodyPart(html); 
      // 将MiniMultipart对象设置为邮件内容 
      mailMessage.setContent(mainPart); 
      // 发送邮件 
      Transport.send(mailMessage); 
      return true; 
      } catch (MessagingException ex) { 
      ex.printStackTrace(); 
      } 
      return false; 

      

  9.   

    这个来测试的:
    package com.util.mail;public class Test {
    public static void main(String[] args){
            //这个类主要是设置邮件
      MailSenderInfo mailInfo = new MailSenderInfo(); 
      mailInfo.setMailServerHost("smtp.163.com"); 
      mailInfo.setMailServerPort("25"); 
      mailInfo.setValidate(true); 
      mailInfo.setUserName("***@163.com"); 
      mailInfo.setPassword("***");//您的邮箱密码 
      mailInfo.setFromAddress("***@163.com"); 
      mailInfo.setToAddress("***@163.com"); 
      mailInfo.setSubject("设置邮箱标题"); 
      mailInfo.setContent("设置邮箱内容"); 
            //这个类主要来发送邮件
      SimpleMailSender sms = new SimpleMailSender();
             sms.sendTextMail(mailInfo);//发送文体格式 
             sms.sendHtmlMail(mailInfo);//发送html格式
    }}
    出现的异常:javax.mail.SendFailedException: Sending failed;
      nested exception is:
    class javax.mail.MessagingException: 553 Mail from must equal authorized user at javax.mail.Transport.send0(Transport.java:218)
    at javax.mail.Transport.send(Transport.java:80)
    at com.util.mail.SimpleMailSender.sendTextMail(SimpleMailSender.java:53)
    at com.util.mail.Test.main(Test.java:18)
    javax.mail.SendFailedException: Sending failed;
      nested exception is:
    class javax.mail.MessagingException: 553 Mail from must equal authorized user at javax.mail.Transport.send0(Transport.java:218)
    at javax.mail.Transport.send(Transport.java:80)
    at com.util.mail.SimpleMailSender.sendHtmlMail(SimpleMailSender.java:100)
    at com.util.mail.Test.main(Test.java:19)
    球高手指点下哪里错了。。万分感谢。。
      

  10.   


    不可能跑不起来的,在本地调试成功的代码。
    用户名,密码,接收方的email如果设置正确,是可以发送的。