2011-07-07 20 views
0

JSPを使用して電子メールを送信するコードを見つけるのに苦労しています。JavaMail APIを使用してJSPファイルをコンパイルできません

私は、メッセージのテキスト本文を収集するためのhtml形式を持っています。そして、shoudlは残りの情報を持って、チームに通知を送信する際にユーザーの作業を減らします... ..

JSPコードは次のとおりです。セッションはタイプに解決できない、メッセージはタイプに解決できない、MimeMessageはタイプに解決できないなどというエラーメッセージが表示され続けます。 ..

<%@ page import="java.util.*, javax.mail.*, javax.mail.internet.*" %> 

<% 

// SMTP Authentication settings 
String host = "smtp.e-tools.com.ve"; 
String user = "[email protected]"; 
String pass = "password"; 

// E-Mail settings 
String to = "[email protected]"; 
String from = "[email protected]"; 
String subject = "E-tools Notification - New Document/Comment to see"; 
String mesg = request.getParameter("smsInput"); 

boolean sessionDebug = false; 
Properties props = System.getProperties(); 
props.put("mail.host", host); 
props.put("mail.transport.protocol", "smtp"); 

Session mailSession = Session.getDefaultInstance(props, null); 
mailSession.setDebug(sessionDebug); 

// Create message to send 
Message msg = new MimeMessage(mailSession); 
msg.setFrom(new InternetAddress(from)); 
InternetAddress[] address = {new InternetAddress(to)}; 
msg.setRecipients(Message.RecipientType.TO, address); 
msg.setSubject(subject); 
msg.setSentDate(new Date()); 
msg.setText(messageText); 

// Send message 
Transport transport = mailSession.getTransport("smtp"); 
transport.connect(host, user, user); 
transport.sendMessage(msg, msg.getAllRecipients()); 
transport.close(); 

%> 

答えて

2

はimporながらは型に JSPのコンパイルエラーを解決できないの取得します一見面白いですが、単にそれらのクラスがクラスパスに存在しないことを意味することもあります。通常のJavaでランタイム中にNoClassDefFoundErrorを取得するのと似ています。

Glassfishのような実際のJava EEコンテナとは対照的に、Tomcatのような単純なサーブレット・コンテナはJavaMailと一緒に出荷されません。 downloading JavaMail JARで自分自身を追加し、webappの/WEB-INF/libにそれらをドロップする必要があります。

Javaクラスの代わりにJSPファイルに未加工Javaコードを書き込むことは面白くありません。

+0

私はWeb-Infのlibフォルダにjarファイルをダウンロードしましたが、私はまだ同じエラーを受け取りました....他に何ができるかわかりません。 – Sheeyla

+0

ページの読み込みはうまくいきますあなたが実行していると思うコードを実行していない可能性があります)。しかし、 '/ Web-Inf/lib'は無効です。 Javaは大文字と小文字を区別それは '/ WEB-INF/lib'でなければなりません。ダウンロードしたZIPファイルから少なくともmail.jarファイルを抽出してください(ダウンロードされたZIPファイル全体ではありません)。 Java 1.5を実行している場合は、(私の答えのダウンロードリンクに従って) 'activation.jar'も必要です。 – BalusC

+0

ありがとうBalusCしかし、すべてのことが行われている....大文字と小文字を区別する問題は、私が絶望的なのでここに入力していた....私はlibフォルダ内のすべての瓶を持って、私はactivation.jarも.. .. – Sheeyla

1

Sheeyla、私はまったく同じ問題を抱えていました。私はTomcat6を使用しています。問題は、Tomcat6はWEB-INF/libフォルダにあるmail.jarフォルダが気に入らず、グローバルに共有されるjarファイルであることを要求しているということです。 mail.jarをCATALINA_HOME/libフォルダ(デフォルトでは/ usr/share/tomcat6/lib)に入れ、WEB-INF/libフォルダから削除してTomcat6を再起動すると動作します。 activation.jarは必要ありません.Java 1.6でもそうである可能性が高いからです。あなたもそれを取り除くことができます。

関連する問題