当前位置: 技术问答>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服务器的认证
该如何用代码通过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连接就可以了。
好运!
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会话
props.put("mail.smtp.host", host);
props.put("mail.smtp.port", port);
session = Session.getInstance(props);
这样就建立了SMTP的Session会话
|
Session在javax.mail.下