1.是否可以不用认证?如果是,那是否可以不指定smtp server等?
一般来说发邮件是需要验证的,也一定需要SMTP Server2.smtp 认证 具体有哪些内容?
就是你需要传递用户名和密码到那个SMTP Server上3.pop before smtp又是什么样的认证方式?
pop before smtp不知道是什么,pop3的话就是和SMTP一样的用户名和密码,只是两者之间传递上有一点差异罢了(如果不是你自己去实现接口,不需要关心这个细)
一般来说发邮件是需要验证的,也一定需要SMTP Server2.smtp 认证 具体有哪些内容?
就是你需要传递用户名和密码到那个SMTP Server上3.pop before smtp又是什么样的认证方式?
pop before smtp不知道是什么,pop3的话就是和SMTP一样的用户名和密码,只是两者之间传递上有一点差异罢了(如果不是你自己去实现接口,不需要关心这个细)
2.javamail实现认证功能,用
Properties props= System.getProperties();
props.put("mail.smtp.auth","true");
3.pop before smtp又是什么样的认证方式?
pop before smtp不知道是什么,pop3的话就是和SMTP一样的用户名和密码,只是两者之间传递上有一点差异罢了(如果不是你自己去实现接口,不需要关心这个细)
他们具体有什么差异?在使用上有不同吗?有人说smtp是用来发信的,而pop3是用来收信的?
不知道对不对?to yechuan(川川)
1.用不用认证取决于服务器设置,即邮件服务提供商,一般在帮助中都写明了的。不用认证,是把自己机器作为一台smtp服务器,直接发送邮件,foxmail就提供了一个特快专递的功能,你如果想自己实现,需要了解底层的smtp协议,可以去查查资料;那java提供不认证的支持吗?怎么使用?能否提供相关的资料?谢谢!
我需要的是认证方面的资料,anyway thanx!
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);
}
}
}
但是我想知道的是几种不同的认证之间的关系和不同啊!
什么意思?你要知道smtp和pop3的区别么?只是两种不同的协议而已啊。各自有一大堆的相关命令。就好像ftp协议.你要用socket自己写收发邮件的程序么?或者因为某些目的要仔细研究这些协议?大多情况我觉得没有必要。如果需要的话,你收索一下rtfc协议,要么是rfc协议,rtf协议记不清楚了呵呵,不好意思。
我主要是想知道无认证,smtp,pop before smtp 这三种的认证之间的不同!
或者说这三种之间的用法!
谢谢!
用户名和密码要转换为Base64编码
你可以试试用telnet登陆一些网站的smtp服务器试试
我想还是看看rfc。。
谢谢各位!
终于有点眉目了,原来pop before smtp是在发信之前先收信,
这样做法的主要原因是防止mail server 成为垃圾邮件的open relay
继续学习中。
~~~~~~~~~~~~~~~~~~~~~~~~
http://dev.csdn.net/develop/article/21/21227.shtm