当前位置:  技术问答>java相关

如何在JAVA中连接SMTP服务器

    来源: 互联网  发布时间:2015-10-03

    本文导语:  我写了一个SERVLET,通过一个设定的SMTP服务器发邮件。 该如何用代码通过SMTP服务器的认证 | /* // header - edit "Data/yourJavaHeader" to customize // contents - edit "EventHandlers/Java file/onCreate" to customize // */ imp...

我写了一个SERVLET,通过一个设定的SMTP服务器发邮件。
该如何用代码通过SMTP服务器的认证

|

/*
// header - edit "Data/yourJavaHeader" to customize
// contents - edit "EventHandlers/Java file/onCreate" to customize
//
*/
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.net.*;
import java.io.*;
import javax.swing.*;

public class MailTest
{ public static void main(String[] args)
{ JFrame frame =new MailTestFrame();
frame.show();
}
}

class MailTestFrame extends JFrame implements ActionListener
{ public MailTestFrame()
{ setTitle("MailTest");
setSize(300,300);
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0);
}
}
);
getContentPane().setLayout(new GridBagLayout());
GridBagConstraints gbc=new GridBagConstraints();
gbc.fill=GridBagConstraints.HORIZONTAL;
gbc.weightx=0;
gbc.weighty=0;
gbc.weightx=0;
add(new JLabel("From:"),gbc,0,0,1,1);
gbc.weightx=100;
from =new JTextField(20);
add(from,gbc,1,0,1,1);

gbc.weightx=0;
add(new JLabel("To:"),gbc,0,1,1,1);
gbc.weightx=100;
to=new JTextField(20);
add(to,gbc,1,1,1,1);

gbc.weightx=0;
add(new JLabel("SMTP server:"),gbc,0,2,1,1);
gbc.weightx=100;
smtpServer=new JTextField(20);
add(smtpServer,gbc,1,2,1,1);

gbc.fill=GridBagConstraints.BOTH;
gbc.weighty=100;
message=new JTextArea();
add(new JScrollPane(message),gbc,0,3,2,1);

response=new JTextArea();
add(new JScrollPane (response),gbc,0,4,2,1);

gbc.weighty=0;
JButton sendButton=new JButton("Send");
sendButton.addActionListener(this);
JPanel buttonPanel=new JPanel();
buttonPanel.add(sendButton);
add(buttonPanel,gbc,0,5,2,1);
}
private void add(Component c,GridBagConstraints gbc,int x,int y,int w,int h)
{ gbc.gridx=x;
gbc.gridy=y;
gbc.gridwidth=w;
gbc.gridheight=h;
getContentPane().add(c,gbc);
}
public void actionPerformed(ActionEvent evt)
{ SwingUtilities.invokeLater(new Runnable()
{ public void run()
{ sendMail();
}
});
}
public void sendMail()
{ try
{ Socket s=new Socket(smtpServer.getText(),25);
out =new PrintWriter(s.getOutputStream());
in=new BufferedReader(new InputStreamReader(s.getInputStream()));
String hostName=InetAddress.getLocalHost().getHostName();
send(null);
send("Hello "+hostName);
send("Mail FROM: "+from.getText());
send("RCPT TO: "+to.getText());
send("DATA");
out.println(message.getText());
send(".");
s.close();
}
catch(IOException exception)
{ response.append("Error: "+exception);
}
}
public void send(String s) throws IOException
{ if (s!=null)
{ response.append(s+"_sn");
out.println(s);
out.flush();
}
String line;
//System.out.println(in.readLine());
if ((line=in.readLine())!=null)
response.append(line+"_linen");
}
private BufferedReader in;
private PrintWriter out;
private JTextField from;
private JTextField to;
private JTextField smtpServer;
private JTextArea message;
private JTextArea response;
}

|
你在论坛搜索javamail就能找到答案

|
帮你关注一下!!

|
SMTP端口号:25
POP3端口号:110
用socket连接就可以了。

好运!


|
Properties props = System.getProperties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.port", port);
session = Session.getInstance(props);
这样就建立了SMTP的Session会话

|
Session在javax.mail.下

    
 
 

您可能感兴趣的文章:

  • java数据库连接池和数据库连接示例
  • Java连接池 Nanopool
  • Java连接池 Proxool
  • Java连接池 DBCP
  • 如何用java连接mysql数据库?
  • Java数据库连接池 BoneCP
  • 怎样用java调用DLL动态连接库?
  • Linux系统下利用java连接Oracle 10G
  • 请教:java中如何调用linux下的静态连接库.a文件?
  • java如何连接数据库?
  • 请教:java中如何调用linux下的静态连接库.a文件?
  • java连接DB2问题
  • java连接SQL SERVER
  • Java 连接池组件 JConnectionPool
  • oracle和Java的连接,急!!
  • 用java开发数据库,连接db2应该如何设置classpath (或者说应引入哪个包)
  • 在java中怎么连接MSSQL这样的数据库?database的属性里用什么驱动?
  • Java 和 Access数据库连接问题。谢谢!!
  • 请问JAVA怎么连接Sybase ASA 6.0 ?
  • 请问启动的多个java虚拟机如何共享一个连接池?
  • Java的优势在网络,没有服务器能学Java吗?
  • 哪位有java通信方面的经验,谈谈如何利用java编写服务器程序来接受unix主机发送的数据信息?
  • 卖全新JAVA书,东莞东湖花园交易:<java 服务器高级编程>Wrox程序员参考系列,机械工业出版社50元,<Enterprise JavaBeans 第二版>O're
  • Java HTTP 服务器 Reattore
  • 请问各位高手,如何用JAVA编一个代理服务器。
  • Java应用服务器 Virgo
  • Java服务器 dm Server
  • JAVA桌面应用服务器 JDAP
  • Java服务器 BEJY
  • java服务器端在NT下如何配置?
  • 非阻塞式服务器 Web.Java
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.print类docflavor的类成员方法:服务格式化打印数据定义及介绍
  • 请问java编制的程序主要运行在服务器端还是客户端?听说它的速度比较慢,怎么可以运行在服务器端呢?谢谢!
  • andriod下java socket网络编程:java socket客户端服务端代码示例
  • java.util类对象的DATE方法为何不能用? <%=new java.util.date()%>,在页面中是这样写的,服务器用的是Resin.
  • 如何在linux下自动启动一个用Java编写的服务程序?
  • 如何用java编写一个NT平台下的标准服务?
  • 如何用JAVA做类似服务的一类程序?
  • 在这里问一个开发无关的问题:如何让JAVA程序以系统服务运行?(LINUX)
  • 用java如何在NT上实现FTP服务?
  • 求助:如何安装JAVA服务软件?
  • Java组件服务框架 Carbon
  • Java企业服务总线 Celtix
  • Java HTTP服务器 TJWS
  • Java的MUD游戏服务器 JMud
  • 请问Java如何做应用服务器?????
  • 用java怎样在windows上做服务(service)呢,谢谢
  • 如何把java的一个应用作为nt/2000的一个服务启动。
  • 怎样在JAVA里实现获取指定服务器上所有可用数据库的列表??
  • Java 应用服务器 Gluecode SE
  • 亚马逊Web服务的Java接口 Typica
  • 简单的Java邮件服务器 Jsmtpd
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3