JAVA编写的用smtp模拟邮件客户端,但是身份验证500语法错误

JAVA编写的用smtp模拟邮件客户端,但是身份验证500语法错误,第1张

首先你已经在邮件客户端里面设置了smtp服务器的地址,并且你也填写了你的邮箱账户和密码,客户端软件在发送你所编辑好的邮件时,先和smtp进行验证,之后才可以通过smtp服务器来发送邮件的,这个过程并不是你通过网页的方式登陆邮箱那样可以被你看到,基本上验证就是一眨眼就完成了。你可以尝试一下,在你的客户端里面把密码故意输错掉,然后试试看能不能发邮件就知道了,答案是肯定发不了,客户端会提示你“账号或者密码错误,无法登陆服务器”之类的提示。

你好,你的这个问题已经基本解决了,出现你这种情况是因为你没有完全明白java中全局变量与局部变量关系的问题。在你的程序中,你将JButton定义在一个方法之中,本质上讲,你的button只是一个局部变量,因此你在注册事件时,会提示找不到事件源。另外,actionPerformed事件一般只用于按钮,所以文本框以及密码框没有必要注册actionPerformed事件。

下面的程序中基本上已经改好了,但是当输入全部为空的时候还是会出现问题的,但是本质的问题我已经帮你解决了,其他的问题,你慢慢探讨吧。下面是修改后的程序:

package org.twq.java

import javax.swing.*

import java.awt.*

import java.awt.event.*

//模拟邮箱登陆

public class Email implements ActionListener {

char[] password = { '1', '2', '3' }// 正确的密码

String id = "hao"// 正确的用户名

JPasswordField textpassword

JTextField textname

JLabel lbmsg

//

JPanel panel

JLabel lbname

JLabel lbpassword

JButton btn

public static void main(String[] agrs) {

JFrame f = new JFrame("邮箱登陆系统")

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

Email email = new Email()// 创建本身的一个对象email

JPanel panel = email.createComponents()// 调用init方法创建界面

f.getContentPane().add(panel)

f.setSize(200, 150)

f.setVisible(true)

}

// 在init中创建图形界面

public JPanel createComponents() {

panel = new JPanel(new FlowLayout())

lbname = new JLabel("用户:")

textname = new JTextField(10)

lbpassword = new JLabel("密码:")

textpassword = new JPasswordField(10)

btn = new JButton("登录")

lbmsg = new JLabel("请输入账密!")

//textname.addActionListener(this)

//textpassword.addActionListener(this)

btn.addActionListener(this)

panel.add(lbname)

panel.add(textname)

panel.add(lbpassword)

panel.add(textpassword)

panel.add(btn)

panel.add(lbmsg)

return panel

}

// 事件处理的方法

public void actionPerformed(ActionEvent e) {

boolean b = true

// 输入的密码保存到数组c中

char[] c = textpassword.getPassword()

// 输入的密码与正确的密码对比

for (int i = 0i <password.length - 1i++) {

if ((c[i] != password[i]) || (c.length != password.length)) {

b = false

break

}

}

if (!textname.getText().equalsIgnoreCase(id)) {

lbmsg.setText("该用户名不存在,请重新输入!")

textpassword.setText("")

textname.setText("")

} else {

if (b) {

lbmsg.setText("登录成功,欢迎回来!")

} else {

lbmsg.setText("密码输入有误,重新输入!")

textpassword.setText("")

}

}

}

}

有的时候 不要考虑纯web网页,从移动端作为入口去爬是最简单的方法

http://m.mail.163.com/?come=wap

这个是163手机邮箱的地址,从这里去找表单提交的方法,通过httpclient模拟提交表单,然后读取邮件列表

再通过httpclient去打开邮件取数据

给你思路了 剩下的可以去写代码了~


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/54128.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-02-26
下一篇2023-02-26

发表评论

登录后才能评论

评论列表(0条)

    保存