xrl2012 2014-04-11 03:31 采纳率: 0%
浏览 3975

Caused by: com.sun.mail.smtp.SMTPAddressFailedException: 553 sorry

package com.gotobus.util.email;
import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.SendFailedException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import com.sun.mail.smtp.SMTPAddressFailedException;
public class SendMail {

/**
 * @param args
 */
public static void main(String[] args) {
    String host = "mail.gotobus.com";   //发件人使用发邮件的电子信箱服务器
    String from = "no-reply@gotobus.com";    //发邮件的出发地(发件人的信箱)
    String to = "wushu201404@gmail.com";   //发邮件的目的地(收件人信箱)
 // String to="mark@gotobus.com";

   Properties props = System.getProperties();
   props.put("mail.smtp.host", host);
   props.put("mail.smtp.auth", "false"); //这样才能通过验证
   props.put("mail.transport.protocol", "POP3");
   props.put("mail.smtp.port", "25");   

//   MyAuthenticator myauth = new MyAuthenticator();
   Session session = Session.getDefaultInstance(props, null);

// Session session = Session.getInstance(props);

  MimeMessage message = new MimeMessage(session);

    try {
        message.setFrom(new InternetAddress(from));
        message.addRecipient(Message.RecipientType.TO,
          new InternetAddress(to));
        message.setSubject("测试程序--no-reply--!");
        message.setText("这是用java写的发送电子邮件的测试程序99999wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwa!");
        message.saveChanges();

       try {
           Transport.send(message);
       } catch (SMTPAddressFailedException e) {
           throw new SendFailedException("Unable to send to " + to, e);
          }



        System.out.println("=======success=====");
    } catch (AddressException e) {
        e.printStackTrace();
    } catch (MessagingException e) {
        e.printStackTrace();
    }



}

}
----具体情况描述--------
这个案例是用javamail实现不需要校验身份信息实现邮件发送的功能,目前自己所用的是企业内部邮箱,代码可以实现的是给内部邮箱发件。但换成qq.163.gmail等邮件时,出现了上面的报错。。。。。。但使用perl语言时可以顺利转发,所以,邮箱账户应该不存在问题,求助大神诊断!!!!!!!!!!!!感激不尽!!

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-01 22:45
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    从您提供的代码来看,似乎遇到了一个SMTPAddressFailedException异常。这个异常通常是由于尝试将一个无效或不正确的SMTP地址传递到发送邮件中导致的。

    根据您的描述,您正在使用JavaMail来处理邮件发送,而JavaMail本身并不直接支持与企业邮箱服务(如Gmail、Yahoo、Hotmail等)进行交互。因此,您可能需要考虑以下几点:

    1. 正确设置SMTP服务器和端口:确保在Properties对象中设置了正确的SMTP主机名和端口号。

    2. 使用SSL/TLS:虽然JavaMail默认为TCP/IP协议,但是为了安全起见,建议启用SSL/TLS加密以保护传输数据的安全性。

    3. 认证方式:如果您想要验证发送者的身份,可以考虑使用JavaMail中的MyAuthenticator类或其他第三方库,例如Apache Commons Mail,来解决身份验证问题。

    4. 错误处理:确保对异常进行了适当的捕获和处理,避免因未处理的异常导致的程序崩溃。

    5. 测试环境:在部署实际应用程序之前,请先在模拟器或开发环境中运行测试,以确保所有功能都能正常工作。

    希望这些建议能帮助您解决问题。如果还有其他疑问或者需要进一步的帮助,请随时提问。祝您好运!

    评论

报告相同问题?