2011-12-01 1 views
0

나는 메시지를 표시하는 전자 메일 클라이언트를 만들었으며 회신을 클릭하면 해당 전자 메일에 첨부 파일로 응답해야하지만 enctype='multipart/form-data'>bodypart.getContent()이나 다른 방법을 사용하지 않습니다. 프로젝트를 처리해야하므로이 문제를 빨리 해결할 수 있도록 도와주세요.첨부 파일이있는 메일에 회신하려면 어떻게해야합니까?

composereplymail.jsp 난 당신이 뭘 하려는지에 완전히 명확하지 않다

<%@ page import="user.*" %> 
<%@ page import="javax.mail.*" %> 
<%@ page import="javax.mail.internet.*" %> 
<%@ page import="javax.activation.*" %> 
<%@ page import="java.io.*" %> 
<% 
    String sendmessage=(String)request.getAttribute("sendmessage"); 
    if(sendmessage==null) 
    { 
     sendmessage=""; 
    } 

    if (session == null) { 
     response.sendError(404, "Session expired"); 
     return; 
    } 
    userinfo info = (userinfo)session.getAttribute("userinfo"); 

    Session sessio = info.getSession(); 
    Store store = sessio.getStore("imap"); 
     store.connect(info.getHostname(),info.getusername(),info.getpassword()); 
    Folder folder = store.getFolder(info.getUrl()); 
    folder.open(Folder.READ_WRITE); 
    Integer messageno=Integer.parseInt(request.getParameter("messageno")); 
    Message[] message = folder.getMessages(); 
    String subject=message[messageno].getSubject(); 


%> 



<html><head> 
<title>Home Page</title> 
<link rel="stylesheet" type="text/css" href="styleforcomposemail.css" /> 
</head> 
    <body> 
<center> 
<form action='sendmail' method='post' enctype='multipart/form-data'> 
    <table> 
     <tr bgcolor='#800517'> 
     <td colspan='2'><b><h3><center>Compose Your Mail Here</center></h3></b></td> 
     </tr> 
     <tr height="15" bgcolor='#CFECEC'> 
     <td><b>From :</td> 
     <td><label for="login"><%= info.getsendfrom() %></label></td> 
     </tr> 
     <tr height="15" bgcolor='#CFECEC'> 
     <td><b>TO :</td> 
     <td><input type='text' name='sendto' class='Large' value='<%= message[messageno].getFrom()[0] %>' /></b>separate addresses with commas</td> 
     </tr> 
     <tr height="15" bgcolor='#CFECEC'> 
     <td><b >CC :</td> 
     <td><input type='text' name='cc' class='Large' /></b></td> 
     </tr> 
     <tr height="15" bgcolor='#CFECEC'> 
     <td><b>Subject :</td> 
     <td><input type='text' name='subject' class='Large' value='Re : <%=subject%>' /></td> 
     </tr> 


<% 

MimeMessage reply = (MimeMessage) message[messageno].reply(false); 

Multipart multipart=(Multipart)message[messageno].getContent(); 

for(int i=0;i<multipart.getCount();i++) 
{ 
    BodyPart bodypart = multipart.getBodyPart(i); 

    String disposition = bodypart.getDisposition(); 

    if(disposition != null && (disposition.equals(BodyPart.ATTACHMENT))) 
    { 

     //saveFile(bodypart.getFileName(),bodypart.getInputStream()); 


    String filename=bodypart.getFileName(); 

    String FilePath="C:\\nikki\\apache-tomcat-7.0.22\\webapps\\Email\\download\\"+filename; 
    String FileDownloadPath="\\Email\\download\\"+filename; 
    DataHandler dh = bodypart.getDataHandler(); 
    %> 

     <tr height="15" bgcolor='#CFECEC'> 

     <td><b>Attachment :</td> 
     <td><input type="hidden" name="attachment" value="<%=bodypart.getContent()%>"/><a href="<%=FileDownloadPath%>"><%=filename%></a></td>//**what method should i pass over here to get that file sent with multipart/form-data** 
     </tr> 
    <%}else{%> 

     <tr bgcolor='#CFECEC'> 
     <td colspan='2'><textarea id="textAreaa" rows='32' cols='135' name='data'><%=bodypart.getContent()%></textarea></td> 
     </tr> 
    <%}}%> 
     <tr height="15" bgcolor='#CFECEC'> 
     <td colspan='2'><input type='submit' class='button' name='Submit' value='Submit'/> 
       <input type='submit' class='button' name='Draft' value='Save As Draft'/> 
       <input type='reset' class='button' value='Reset' name='Reset'/> 
       <input type='reset' class='button' value='Discard' name='Reset'/> 
     </td> 
     </tr> 
    </table> 
    </form> 
    </center> 
    </body> 
</html> 

답변

0

...

일반적으로, 메시지에 회신 할 때 하지 않습니다 원래 메시지의 모든 첨부 파일을 포함하도록 답장을 보내려고합니다.

그리고 어떤 경우에도 첨부 파일로 다시 보낼 수 있도록 브라우저 클라이언트에만 첨부 파일을 보내지 않으려는 것입니다. 아마 당신이 정말로 원하는 것은 사용자가 답장에 첨부 될 파일을 선택할 수 있도록하는 것입니다.

JavaMail 다운로드 번들에는 몇 가지 데모 프로그램이 포함되어 있습니다. 하나의 서블릿 기반과 하나의 JSP 기반으로 보았습니까?

+0

답장을 보내 주셔서 감사합니다. 사용자가 메일을 작성할 때받는 사람이 메시지를 표시하고받는 사람이 답장 버튼을 클릭 할 때 첨부 파일을 보낼 수있는 부분은 첨부 된 첨부 파일을 다시 보내야한다는 것입니다. file 태그의 기능을 제공하지 않고 sendmail.java를 composereplymail.jsp로 되돌립니다. –

+0

또한 비슷한 메일을 전달해야하므로 유사하게 코딩해야하지만 문제는 위에서 언급 한 것입니다. –

+0

전달이 회신과 다르므로 첨부 파일을 원할 것입니다. 내가 가리킨 예를 보았 니? 메시지 전달에 대해 설명하는 JavaMail FAQ 항목을 참조하십시오. –