1

我正在做一个学校项目,我可以对这段代码使用一些帮助:我正在尝试在 java 页面上调用此方法:

import java.io.UnsupportedEncodingException;
import java.util.Properties;

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

package Test;
public class SendMail {

    public static void () {

        final String username = "";
        final String password = "";

        Properties props = new Properties();
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.host", "smtp.gmail.com");
        props.put("mail.smtp.port", "587");

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

        try {

            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress("shov.rz@gmail.com"));
            message.setRecipients(Message.RecipientType.TO,
                InternetAddress.parse("shov.rz@gmail.com"));
            message.setSubject("Testing Subject");
            message.setText("Dear Mail Crawler,"
                + "\n\n No spam to my email, please!");

            Transport.send(message);

            System.out.println("Done");

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

我在一个jsp页面上调用这个函数:

<%@ page language="java" contentType="text/html; charset=windows-1255"
    pageEncoding="windows-1255"%>
    <%@page import="Test.SendMail" 
       SendMail.test(); %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1255">
<title>Insert title here</title>
</head>
<body>

</body>
</html>

java类是正确导入的,但eclipse拒绝运行这个程序。我必须补充一点,我正在使用 eclipse galileo 和 apache tomcat。难道我做错了什么?

4

3 回答 3

2

我怀疑这是问题所在:

charset=windows-1255

我建议您改用 UTF-8。它会更便携。

(没有明显迹象表明您甚至正在从页面调用该方法。)

顺便说一句,目前你有一个与你的类同名的方法——我强烈反对你这样做。除此之外,Java 约定将camelCase用于方法名称。

于 2013-06-04T18:24:06.130 回答
1

成功编译代码后,将其放在 web-inf/classes/ 文件夹下。将编译此类所需的所有 jar 文件放在 web-inf/lib 文件夹下。

在jsp页面中你应该有这个

......
< %@ page import="test.SendMail" % >

<% //这里调用函数

SendMail.send();

%>
.....

于 2013-06-04T18:31:54.473 回答
1

您似乎正在尝试调用一个名为test(). 你的类有一个被调用的方法send()

此外,由于它是一个静态方法,因此您不需要类的实例来调用它。只需调用SendMail.send();.

于 2013-06-04T18:33:55.463 回答