如何在JAVA中连接SMTP服务器

BigWrist 2002-10-16 06:31:40
我写了一个SERVLET,通过一个设定的SMTP服务器发邮件。
该如何用代码通过SMTP服务器的认证
...全文
164 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sgr_kk 2002-10-17
  • 打赏
  • 举报
回复
Session在javax.mail.下
sgr_kk 2002-10-17
  • 打赏
  • 举报
回复
Properties props = System.getProperties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.port", port);
session = Session.getInstance(props);
这样就建立了SMTP的Session会话
bowlder 2002-10-17
  • 打赏
  • 举报
回复

/*
// 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+"_s\n");
out.println(s);
out.flush();
}
String line;
//System.out.println(in.readLine());
if ((line=in.readLine())!=null)
response.append(line+"_line\n");
}
private BufferedReader in;
private PrintWriter out;
private JTextField from;
private JTextField to;
private JTextField smtpServer;
private JTextArea message;
private JTextArea response;
}
hello_wyq 2002-10-17
  • 打赏
  • 举报
回复
SMTP端口号:25
POP3端口号:110
用socket连接就可以了。

好运!

yangtian 2002-10-16
  • 打赏
  • 举报
回复
帮你关注一下!!
wjmmml 2002-10-16
  • 打赏
  • 举报
回复
你在论坛搜索javamail就能找到答案

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧