当前位置:编程学习 > JAVA >>

java邮件发送老失败!

DEBUG SMTP: MessagingException while sending, THROW: 
com.sun.mail.smtp.SMTPSendFailedException: 553 Mail from must equal authorized user
;
  nested exception is:
com.sun.mail.smtp.SMTPSenderFailedException: 553 Mail from must equal authorized user

at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2108)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1609)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1117)
at com.ck.mail.view.MailLogin$1.actionPerformed(MailLogin.java:77)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: com.sun.mail.smtp.SMTPSenderFailedException: 553 Mail from must equal authorized user

at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1616)
... 38 more
Transport连接服务器失败!!
com.sun.mail.smtp.SMTPSendFailedException: 553 Mail from must equal authorized user
;
  nested exception is:
com.sun.mail.smtp.SMTPSenderFailedException: 553 Mail from must equal authorized user

at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2108)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1609)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1117)
at com.ck.mail.view.MailLogin$1.actionPerformed(MailLogin.java:77)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: com.sun.mail.smtp.SMTPSenderFailedException: 553 Mail from must equal authorized user

at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1616)
... 38 more
java mail --------------------编程问答-------------------- 这是源码!!!
package com.ck.mail.view;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class MailLogin extends JFrame{
public static void main(String[] args){ 
new MailLogin();
}
JLabel j1,j2;
JTextField jt1;
JPasswordField jp2;
JButton jb1,jb2;
JComboBox jcb;
String[] jcbdata;
public MailLogin(){

j1=new JLabel("邮箱账户:");
jt1=new JTextField(10);
this.add(j1);
this.add(jt1);
jcbdata=new String[]{"@126.com","@163.com","@qq.com","@souhu","@sina.com"};
jcb=new JComboBox(jcbdata);
this.add(jcb);
j2=new JLabel("邮箱密码:");
jp2=new JPasswordField(20);

this.add(j2);
this.add(jp2);

jb1=new JButton("登陆");
jb1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub

System.out.println(jt1.getText()+jcbdata[jcb.getSelectedIndex()]);
System.out.println(new String(jp2.getPassword()));

String mailserver=("smtp"+jcbdata[jcb.getSelectedIndex()]).replace('@', '.');
int serverport=25;
String user=jt1.getText();
String pass=new String(jp2.getPassword());

System.out.println(mailserver);

//搭建session环境
Properties props=new Properties();
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.transport.protocol", "smtp");
Session session=Session.getInstance(props);
session.setDebug(true);

try {
//配置要发送的邮件
Message message=new MimeMessage(session);
message.setText("你好呀!");
message.setFrom(new InternetAddress("zqq@qq.com"));

//将邮件发送出去的火箭
Transport transport=session.getTransport();
transport.connect(mailserver, 25, user, pass);
transport.sendMessage(message,new Address[]{new InternetAddress("1097165036@qq.com")});
transport.close();



} catch (NoSuchProviderException e1) {
System.out.println("Transport对象创建失败!");
e1.printStackTrace();
} catch (MessagingException e1) {
// TODO Auto-generated catch block
System.out.println("Transport连接服务器失败!!");
e1.printStackTrace();
}



}
});
jb2=new JButton("取消");
this.add(jb1);
this.add(jb2);

this.setLayout(new FlowLayout(FlowLayout.CENTER,15,30));
this.setSize(380,260);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}

}

--------------------编程问答-------------------- 检查下发信人邮箱是否存在,密码是否正确 --------------------编程问答-------------------- 查看一下邮箱  是不是是不是收到了一封邮件  提醒你设置邮箱 --------------------编程问答-------------------- 给你个我写的例子吧,测试通过的。
http://blog.csdn.net/peng_hao1988/article/details/6537272 --------------------编程问答-------------------- 你的这种实现方式不需要这一句:props.setProperty("mail.smtp.auth", "true");

如果加上需要这样写:

 Authenticator auth = new Authenticator() {

           protected PasswordAuthentication getPasswordAuthentication() {

              return new PasswordAuthentication(user.getUsername(), user

                     .getPassword());

           }

       };

       session = Session.getDefaultInstance(props, auth);
       。。。。。。。。。。。
--------------------编程问答-------------------- 你没写认证。。服务器需要验证

//搭建session环境
Properties props=new Properties();
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.transport.protocol", "smtp");
Session session=Session.getInstance(props);
session.setDebug(true);
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,