当前位置: 首页 > 知识库问答 >
问题:

Javamail-从localhost发送,而不是Goaddy服务器

别宏盛
2023-03-14

当我试图从“smtpout.asia.secureserver.net”发送邮件时,它是从本地主机而不是“secureserver”主机发送的。下面是代码:

Properties props = new Properties();    
             props.put("mail.smtp.host","smtpout.asia.secureserver.net");       
             props.put("mail.smtp.socketFactory.class",    
                       "javax.net.ssl.SSLSocketFactory");    
             props.put("mail.smtp.auth", "true");    
             props.put("mail.smtp.port", "465");
             props.put("mail.smtp.starttls.enable","true");
             props.put("mail.debug", "true"); 

 Session session = Session.getDefaultInstance(props,    
         new javax.mail.Authenticator() {    
         protected PasswordAuthentication getPasswordAuthentication() {    
         return new PasswordAuthentication("xxxx@xxxxx.net","xxxxx");  
         }    
        });    
        //compose message    
        try {    
         MimeMessage message = new MimeMessage(session);    
         message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));    
         message.setSubject(sub);    
         message.setText(msg);    
         //send message  
         Transport.send(message);    
         System.out.println("message sent successfully");    
        }

catt(MessagingExc的e){抛出新的Runtime异常(e);}

调试:

 com.sun.mail.smtp.SMTPSendFailedException
    550 <narasimhatejav@teja> Sender Rejected - MAILFROM must be a valid domain. Ensure the mailfrom domain: "teja"  has a valid MX or A record.
    DEBUG SMTP: got response code 550, with response: 550 <narasimhatejav@teja> Sender Rejected - MAILFROM must be a valid domain. Ensure the mailfrom domain: "teja"  has a valid MX or A record.

但是如果我将主机更改为“smtp.gmail.com”,它就可以正常工作。

共有2个答案

红砚文
2023-03-14

它是从本地主机发送的,因为您犯了大多数常见的JavaMail错误。

MAILFROM 问题是因为计算机上的主机名或名称服务配置错误。作为解决方法,您可以设置 mail.smtp.localhost 属性。

蒋文光
2023-03-14

将Javamail Jar更改为v1.5,并添加javax.mail.internet.MimeMessage.set(字符串地址)函数

 类似资料:
  • 我有一个有角度的Spring靴项目。Angular项目包含向端口8080上运行的Spring Boot应用程序发出Http请求的服务。奇怪的是,我的至少一个服务正在对localhost:4200而不是localhost:8080进行Http调用,尽管我认为我已经设置了正确的配置。 角度服务: proxy.conf.json项目根目录下的文件: 我用以下命令启动Angular服务器:ng serve

  • 我正在尝试使用 javamail 连接到本地后缀鸽子服务器。我已经使用 Thunderbird 成功连接到服务器,所以我知道我的用户名和密码是正确的,但我总是得到 我所知道的唯一一件事就是改变java。禁用一些不太安全的协议。dovecot需要什么协议?还是我看错了方向。 如果这是一个协议问题,是否有任何方法可以将参数传递给编译器?我确实有其他服务,我想阻止支持禁用的协议 编辑: 这是我使用的代码

  • 问题内容: 我尝试使用 Spring javamail 从 Heroku 发送电子邮件,但出现错误。 __ 我的代码: 豆子: 和控制器: 在localhost:8080和localhost:5000上,测试成功完成,但是在heroku服务器上,我有例外: 验证失败;嵌套的异常是javax.mail.AuthenticationFailedException:534-5.7.14请通过Web浏览器

  • 我试图使用Spring javamail从Heroku发送电子邮件,但出现了错误。 我的代码: 豆: 和控制器: 在localhost:8080和localhost:5000上,测试成功完成,但在heroku服务器上,我有一个异常: 身份验证失败;嵌套的异常是javax。邮政身份验证失败异常:534-5.7.14请通过web浏览器和534-5.7.14登录,然后重试。534-5.7.14在534

  • 我想让我的Android应用程序使用我的邮件服务器发送邮件,我的服务器使用端口25,所以我的应用程序需要在不出现ssl的情况下发送邮件。我尝试过这里大多数类似问题中提到的方法,但没有一个有效,因此我提出了一个新问题。以下是我读到的一些链接: 在android中使用JavaMail API发送电子邮件,使用smtp但不使用SSL 通过smtp发送电子邮件,使用TSL Java Mail:SSLHan