尝试通过我的测试发送电子邮件,它将此课程作为主要课程。
public class SendMail{
public SendMail(String fromMail,String tomail, Exception e )
{
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("abc123@gmail.com","testpw");
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(fromMail));
message.setRecipients(Message.RecipientType.TO,InternetAddress.parse(tomail));
message.setSubject("xxxxx");
message.setText("xxxxx"+ ExceptionUtils.getStackTrace(e) );
Transport.send(message);
System.out.println("Done");
}
catch (MessagingException ex) {
throw new RuntimeException(ex);
}
}
public SendMail(String string, String line) {
所以我想在我的其他课程中调用它,以便能够从txt文件中提取电子邮件列表,以便它将通过电子邮件发送列表中的所有内容。该代码是:
String fileName = "/xxx/xxx/xxx/text.txt";
try (BufferedReader br = new BufferedReader(new FileReader(fileName))) {
String line;
while ((line = br.readLine()) !=null) {
new SendMail("abcd@gmail.com", line);
}
}
catch (IOException e) {
e.printStackTrace();
}
问题在于它告诉我构造函数SendMail(String,String)是未定义的。
我的原始代码有效,但这只允许我发送硬编码的电子邮件。
try{
}
catch(Exception e)
{
e.printStackTrace();
new SendMail("senderemail","reciveremail",e); }
}
为什么不接受我的构造函数?
编辑:consturctor并没有错。我曾是!我找到了它不能工作并解决我的问题的原因。这是我现在使用的代码。String fileName = "/Users/cdolan/Desktop/liness.txt";
String Email = "";
try(BufferedReader br = new BufferedReader(new FileReader(fileName))) {
while ((Email = br.readLine()) !=null)
{
<Test code here goes here>
}
}
catch(Exception e)
{
e.printStackTrace();
new SendMail("email123@gmail.com",Email,e); }
}
答案 0 :(得分:2)
问题是您只定义方法SendMail(String fromMail,String tomail, Exception e)
,因此您无法调用未定义的方法。
您需要定义并实施方法SendMail(String fromMail,String tomail,)
,以便您可以调用它!
另一个问题应该是:为什么需要将异常作为输入参数传递?
答案 1 :(得分:0)
您指定的构造函数将Exception作为参数(出于什么原因?)。创建新对象时,缺少此异常参数。