JavaMail中出现SMTPSendFailedException错误求前辈指点!

Pluser 2012-04-11 09:09:04
package JavaMail;

import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Mail extends JFrame{
JButton sendButton = new JButton("发送邮件");
JLabel usernameLab = new JLabel("用户名: ");
JLabel passwordLab = new JLabel("密 码: ");
JLabel hostLab = new JLabel("服务器: ");
JLabel fromLab = new JLabel("发件人: ");
JLabel toLab = new JLabel("收件人: ");
JLabel subjectLab = new JLabel("主 题: ");
JLabel contentLab = new JLabel("内 容: ");
JTextField username = new JTextField(40);
JPasswordField password = new JPasswordField(40);
JTextField host = new JTextField(40);
JTextField fromFiled = new JTextField(40);
JTextField toField = new JTextField(40);
JTextField subjectField = new JTextField(40);
JTextArea content = new JTextArea(15, 15);
JScrollPane jsp = new JScrollPane(content);

public Mail()
{
Container contentPane = this.getContentPane();
JPanel labels = new JPanel(new GridLayout(6, 1));
JPanel fields = new JPanel(new GridLayout(6, 1));
labels.add(usernameLab);
fields.add(username);
labels.add(passwordLab);
fields.add(password);
labels.add(hostLab);
fields.add(host);
labels.add(fromLab);
fields.add(fromFiled);
labels.add(toLab);
fields.add(toField);
labels.add(subjectLab);
fields.add(subjectField);
Box north = Box.createHorizontalBox();
Box center = Box.createHorizontalBox();
north.add(labels);
north.add(fields);
center.add(contentLab);
center.add(jsp);
contentPane.add(north, "North");
contentPane.add(center, "Center");
content.hashCode();
JPanel south = new JPanel();
south.add(sendButton);
sendButton.addActionListener(new SendMail());
contentPane.add(south, "South");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("电子邮件发送");
this.setSize(300, 300);
this.setVisible(true);
}
class SendMail implements ActionListener
{
public void actionPerformed(ActionEvent evt)
{
try{
Properties props = new Properties(); //get sys-properties
props.put("mail.smtp.host", host.getText()); //save info of mail' send server
//create mail session according to properites
Session session = Session.getInstance(props, null);
final Message msg = new MimeMessage(session); //create mime mail object

Address to = new InternetAddress(toField.getText());
Address from = new InternetAddress(fromFiled.getText());
msg.setFrom(from); //set sender
msg.setRecipient(Message.RecipientType.TO, to); //set reciever
msg.setSentDate(new Date());
msg.setSubject(MimeUtility.encodeText(new String(
subjectField.getText().getBytes(), "GB2312"), "GB2312", "B"));
msg.setContent(content.getText(), "text/plain; charset=UTF-8");

Transport transport = session.getTransport("smtp");
transport.connect(host.getText(), username.getText(),
password.getText());

try{
Transport.send(msg);
}catch(MessagingException e) { e.printStackTrace(); }

content.setText("");
transport.close();
}
catch(Exception e) { e.printStackTrace(); }

}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Mail mail = new Mail();
}
}


出现错误:
>>>>>Sending data EHLO CHINA-4BD1EB8AF<<<<<<
>>>>>Sending data EHLO CHINA-4BD1EB8AF<<<<<<
>>>>>Sending data MAIL FROM: <56329669@qq.com><<<<<<
>>>>>Sending data QUIT<<<<<<
org.apache.geronimo.javamail.transport.smtp.SMTPSendFailedException: Error: need EHLO and AUTH first !

界面:
用户名:56329669@qq.com
密 码:********
服务器:smtp.qq.com
发件人:56329669@qq.com
收件人:56329669@qq.com
主 题:asdasd
内 容:asdasd

按提示说是要先认证,但是我先设置为空在红色代码中可看到我后面设置了,难道这样不行么?
那敢如何 改 才行?


...全文
678 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
gloomyfish 2012-04-12
  • 打赏
  • 举报
回复
只有SSL/TLS才要求加密认证!
gloomyfish 2012-04-12
  • 打赏
  • 举报
回复
还有一点,使用QQ的SMTP邮件服务功能,首先要在QQ Mail中开通此项功能才可以
gloomyfish 2012-04-12
  • 打赏
  • 举报
回复
不是要去认证,是要求授权,
loginX的功能命令发送你的user account and password以后
就可以发送你的邮件内容了
Pluser 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
不是要去认证,是要求授权,
loginX的功能命令发送你的user account and password以后
就可以发送你的邮件内容了
[/Quote]

前辈 能说清楚点么? 我是按例子上敲的代码,刚学习JAVA不久,希望能指点下 非常谢谢!
具体要怎么个改法? 你说先要授权?

62,614

社区成员

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

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