1.是否可以不用认证?如果是,那是否可以不指定smtp server等?
一般来说发邮件是需要验证的,也一定需要SMTP Server2.smtp 认证 具体有哪些内容?
就是你需要传递用户名和密码到那个SMTP Server上3.pop before smtp又是什么样的认证方式?
pop before smtp不知道是什么,pop3的话就是和SMTP一样的用户名和密码,只是两者之间传递上有一点差异罢了(如果不是你自己去实现接口,不需要关心这个细)

解决方案 »

  1.   

    1.用不用认证取决于服务器设置,即邮件服务提供商,一般在帮助中都写明了的。不用认证,是把自己机器作为一台smtp服务器,直接发送邮件,foxmail就提供了一个特快专递的功能,你如果想自己实现,需要了解底层的smtp协议,可以去查查资料;
    2.javamail实现认证功能,用
      Properties props= System.getProperties();
      props.put("mail.smtp.auth","true");
      

  2.   

    http://www.javayou.com/showlog.jspe?cat_id=-1&log_id=136
      

  3.   

    to ChDw(米) 
    3.pop before smtp又是什么样的认证方式?
    pop before smtp不知道是什么,pop3的话就是和SMTP一样的用户名和密码,只是两者之间传递上有一点差异罢了(如果不是你自己去实现接口,不需要关心这个细)
    他们具体有什么差异?在使用上有不同吗?有人说smtp是用来发信的,而pop3是用来收信的?
    不知道对不对?to yechuan(川川) 
    1.用不用认证取决于服务器设置,即邮件服务提供商,一般在帮助中都写明了的。不用认证,是把自己机器作为一台smtp服务器,直接发送邮件,foxmail就提供了一个特快专递的功能,你如果想自己实现,需要了解底层的smtp协议,可以去查查资料;那java提供不认证的支持吗?怎么使用?能否提供相关的资料?谢谢!
      

  4.   

    liusoft(凤梨罐头) 
    我需要的是认证方面的资料,anyway thanx!
      

  5.   

    用javamail发信import java.util.*;
    import javax.mail.*;
    import java.io.*;
    import javax.mail.internet.*;
    import javax.activation.*;public class Email {
      protected String to = null;
      protected String subject = "Email Test";
      protected String body = null;  public Email() {
        super();
      }  public void setTo(String to) {
        this.to = to;
      }  public void setBody(String body) {
    this.body = body;
      }  public void sendmail() {
        try
        {
    String host = "smtp.163.net";
    String from = "your name";
    String to = "other email address";
    String username = "your username";
    String password = "your password";
    this.body = "This is a test"; SmtpAuth sa=new SmtpAuth();
    sa.getuserinfo(username,password);
    Session session;
    MimeMessage message;
    Properties props = System.getProperties();
    props.put("mail.smtp.auth","true");
    props.put("mail.smtp.host", host);
    session = Session.getInstance(props, sa);
    session.setDebug(true);
    message = new MimeMessage(session);
    message.setFrom(new InternetAddress(from));
    message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
    message.setSubject(subject);
    MimeBodyPart mbp = new MimeBodyPart();
    mbp.setText(body);
    Multipart mp = new MimeMultipart();
    mp.addBodyPart(mbp);
    message.setContent(mp);
    message.setSentDate(new java.util.Date());
    Transport transport = session.getTransport("smtp");
    transport.connect("smtp.163.net",username,password);
    transport.send(message);
        }
        catch (MessagingException e) {
    System.out.println("error" + e.getMessage());
        }
      }  class SmtpAuth extends javax.mail.Authenticator {
        private String user,password;
        public void getuserinfo(String getuser,String getpassword){
          user=getuser;
          password=getpassword;
        }
        protected javax.mail.PasswordAuthentication getPasswordAuthentication(){
          return new javax.mail.PasswordAuthentication(user,password);
        }
      }
    }
      

  6.   

    呵,谢谢 bluesmile979(笑着) !
    但是我想知道的是几种不同的认证之间的关系和不同啊!
      

  7.   

    It's so good, I must study it!
      

  8.   

    但是我想知道的是几种不同的认证之间的关系和不同啊!
    什么意思?你要知道smtp和pop3的区别么?只是两种不同的协议而已啊。各自有一大堆的相关命令。就好像ftp协议.你要用socket自己写收发邮件的程序么?或者因为某些目的要仔细研究这些协议?大多情况我觉得没有必要。如果需要的话,你收索一下rtfc协议,要么是rfc协议,rtf协议记不清楚了呵呵,不好意思。
      

  9.   

    呵,也不是了!
    我主要是想知道无认证,smtp,pop before smtp 这三种的认证之间的不同!
    或者说这三种之间的用法!
    谢谢!
      

  10.   

    Base64编码smtp
    用户名和密码要转换为Base64编码
    你可以试试用telnet登陆一些网站的smtp服务器试试
    我想还是看看rfc。。
      

  11.   

    哈,再请教一下,收信的java 代码!
    谢谢各位!
    终于有点眉目了,原来pop before smtp是在发信之前先收信,
    这样做法的主要原因是防止mail server 成为垃圾邮件的open relay
    继续学习中。
    ~~~~~~~~~~~~~~~~~~~~~~~~
      

  12.   

    这里有一篇相关的
    http://dev.csdn.net/develop/article/21/21227.shtm