Win a copy of Programmer's Guide to Java SE 8 Oracle Certified Associate (OCA) this week in the OCAJP forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

FileNotFoundException while sending Mail as attachment using javamail

 
Param Ramli
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
hi there,
I have used a jsp page which calls a java bean to send mail with attachment.The bean uses Javamail API's to do this.But i encountered a FileNotFoundException when i did run the jsp file ,even as the file selected to be attached was present.

Please inform me where has it gone wrong.
i have enclosed my files below,
sendMailAttachment.html
--------------------------
<html>
<body>
<center>
<b>SendMail with Attachment</b>
<form action="mailer.jsp" method="post">
<table width=50% border=1 cellspacing=0 cellpadding=3 bgcolor=#F2F2F2>
<tr>
<td width=40%><b>From :</b></td><td><input type="text" name="from"></td>
</tr>
<tr>
<td width=40%><b>To :</b></td><td><input type="text" name="to" ></td>
</tr>
<tr>
<td width=40%><b>Subject :</b></td><td><input type="text" name="subject" ></td>
</tr>
<tr><td width=40%><b>Attachment :</b></td><td><input type="file" name="path" ></td>
</tr>
<tr>
<td width=40%><b> Message :</b></td><td>
<textarea rows="8" cols="50" name="message"></textarea></td>
</td>

</tr>
</table>
<br>
<input type="submit" value="Send"></input>
</center>
</form>
</div>
</body>
</html>

mailer.jsp
-----------
<%@ page language="java" import = "jspbean.MailerBean" %>
<html>
<body>
<%
String to=request.getParameter("to");
String from=request.getParameter("from");
String message=request.getParameter("message");
String subject=request.getParameter("subject");
String path=request.getParameter("path");
%>

<jsp:useBean id="mailer" class="jspbean.MailerBean">
<jsp:setProperty name="mailer" property="*"/>
</jsp:useBean>
<%

if(path.length()==0)
path=null;

out.println(path);
mailer.sendMail(path); %>

<br><center>Email has been sent successfully to <%= to %>.<br>
</div>
</body>
</html>

MailerBean.java
------------------
package jspbean;
import java.io.*;
import java.util.*;
import java.util.Properties;
import javax.mail.*;
import javax.mail.event.*;
import javax.mail.internet.*;
import javax.activation.*;
public final class MailerBean extends Object implements Serializable {
/* Bean Properties */
private String to = null;
private String from = null;
private String host = "192.168.1.1";
private String subject = null;
private String message = null;

//private String path = null;

public static Properties props = null;
public static Session session = null;



/* Setter Methods */
public void setTo(String to) {
this.to = to;
}
public void setFrom(String from) {
this.from = from;
}
public void setSubject(String subject) {
this.subject = subject;
}
public void setMessage(String message) {
this.message = message;
}
//public void setfilepath(String path) {
//this.path = path;
//}
/* Sends Email */
public void sendMail(String path) throws Exception
{
String filepath=path;
if(!this.everythingIsSet())
throw new Exception("Could not send email.");
try
{
props = System.getProperties();
props.put("mail.smtp.host",host);
session = Session.getDefaultInstance(props, null);

MimeMessage message = new MimeMessage(session);
message.setRecipient(Message.RecipientType.TO,
new InternetAddress(this.to));
message.setFrom(new InternetAddress(this.from));
message.setSubject(this.subject);
if(filepath!=null)
{
//create the message part
MimeBodyPart messageBodyPart= new MimeBodyPart();
messageBodyPart.setText(this.message);
Multipart multipart= new MimeMultipart();
multipart.addBodyPart(messageBodyPart);


//part two is attachment
messageBodyPart= new MimeBodyPart();
FileDataSource source= new FileDataSource(filepath);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(filepath);
multipart.addBodyPart(messageBodyPart);

message.setContent(multipart);

}
else
{
message.setText(this.message);
}
Transport.send(message);
}
catch (MessagingException e)
{
throw new Exception(e.getMessage());
}

}
/* Checks whether all properties have been set or not */
private boolean everythingIsSet() {
if((this.to == null) ||(this.from==null)||
(this.subject == null) || (this.message == null))
return false;
if((this.to.indexOf("@") == -1) || (this.to.indexOf(".")
== -1))
return false;
if((this.from.indexOf("@") == -1) || (this.from.indexOf
(".") == -1))
return false;
return true;
}
}
 
Michael Morris
Ranch Hand
Posts: 3451
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Moving this to the JSP forum.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic