使用属性文件检索用户名和密码时出现 javax.mail.AuthenticationFailedException

标签 java selenium-webdriver testng

代码:

package maintestcases;  

import org.testng.annotations.Test;    
import java.io.IOException;
import java.util.Properties;    
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;


import java.util.*;
import java.io.*;

public class SendMailSSL {

    //ClassLoader classLoader;
    @Test
    public void email() {


final BodyPart messageBodyPart;
            ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
            final Properties props = new Properties();
            try {
                props.load(classLoader.getResourceAsStream("maintestcases/Credentials.properties"));
                String Username = props.getProperty("username");
                String Password= props.getProperty("password");
            } catch (IOException e) {
                e.printStackTrace();
            }
            props.put("mail.smtp.auth", "true");
            props.put("mail.smtp.starttls.enable", "true");
            props.put("mail.smtp.host", "smtp.***.com");
            props.put("mail.smtp.port", "465");



            Session session = Session.getInstance(props,new javax.mail.Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(props.getProperty("username"),props.getProperty("password"));
                }
              });

            try {
                Message message = new MimeMessage(session);


                message.setFrom(new InternetAddress("vijayalakshmi.lakshmanan@xxxx.com"));
                message.setRecipients(Message.RecipientType.TO,
                    InternetAddress.parse("vijayalakshmi.lakshmanan@xxxx.com"));
                message.setSubject("Automation Testing report");
                message.setText("Dear Mail Crawler,"
                    + "\n\n No spam to my email, please!");     


                MimeBodyPart p1 = new MimeBodyPart();

                String html = "<html><head><title>" +
                        message.getSubject() +
                        "</title></head><body><h1>" +
                        message.getSubject() +
                        "</h1><p>This is a test of sending an HTML e-mail" +
                        " through Java.</body></html>";
                p1.setDescription(html);



                MimeBodyPart p2 = new MimeBodyPart();


                FileDataSource fds = new FileDataSource("C:\\Documents and Settings\\vlakshm\\workspace\\Trial\\test-output\\emailable-report.html");
                p2.setDataHandler(new DataHandler(fds));
                p2.setFileName(fds.getName());


                Multipart mp = new MimeMultipart();
                mp.addBodyPart(p1);
                mp.addBodyPart(p2);


                message.setContent(mp);
                  Transport.send(message);

                System.out.println("Done");


            } catch (MessagingException e) {
                throw new RuntimeException(e);
            }

    }
}

属性文件中的内容:

Credentials.properities file:
username:domain/username
Password:********

执行下面提到的代码时,出现错误

"javax.mail.AuthenticationFailedException: 535 5.7.3 Authentication unsuccessful.".

虽然用户名和密码是正确的。

最佳答案

当我将用户名从 domain\username 更改为 username 时,我得到了结果。

关于使用属性文件检索用户名和密码时出现 javax.mail.AuthenticationFailedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17273311/

相关文章:

java - ChromeDriver 在 Java 中使用 Selenium 时出现问题 - 等待驱动程序服务器启动超时

java - 您可以使用 testng 工厂创建多个测试吗?

java - 无法获取测试代码使用gradle查找源代码

java - 在 LibGdx 中绘制网格线的健康方法

java - 如何使用 Java 从 Google 数据存储中删除行?

Java 8 将 String of int 转换为 List<Integer>

python - Selenium Chromedriver 添加 cookie - 无效域错误

java - 使用 new 关键字从同一包内的类外部调用它时在框架内获取空文本区域

java - Selenium id=未找到电子邮件

java - TestNg 由于 NullPointerException 失败