Сейчас я создаю почтовый клиент, используя javamail API, в котором, когда я нажимаю кнопку Reply
, адрес поля From
не входит в поле To
.
DisplayMessage.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);
Message[] message = folder.getMessages();
int count = folder.getMessageCount();
int unread = folder.getUnreadMessageCount();
Integer messageno=Integer.parseInt(request.getParameter("messageno"));
%>
<html><head><title>Home Page</title></head>
<body>
<table width="940" bgcolor="#GSDFES">
<tr><td><input type="submit" name="button" class="button" onclick="javascript:deletemail(<%=messageno%>)" value="Delete"/></td>
<tr><td>From : <%= message[messageno].getFrom()[0] %></td></tr>
<tr><td>Subject : <%= message[messageno].getSubject() %></td></tr>
<tr><td>Date : <%= message[messageno].getSentDate() %></td></tr>
<tr><td>ContentType : <%= message[messageno].getContentType() %></td></tr>
<tr><td>
<%
InputStream stream = message[messageno].getInputStream();
while (stream.available() != 0) {
%>
<%
char str=((char)stream.read());
if(str=='\n')
{ %><br/><% continue;} %>
<% if(str==' ')
{ %> <% } %>
<%= str %>
<%
}
%>
</table>
<button class="button" name="reply" onClick="javascript:loadreplymessage(<%=messageno%>)">Reply</button><button class="button" onClick="javascript:loadforwardmessage(<%=messageno%>)" name="forward">Forward</button>
</body>
</html>
Функция записана в другом файле home.jsp
:
function loadcomposemail()
{
if(window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject(Microsoft.XMLHTTP);
}
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("tableview").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","composemail.jsp",true);
xmlhttp.send();
}
function loadreplymessage(i)
{
if(window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject(Microsoft.XMLHTTP);
}
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("tableview").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","composereplymail.jsp?messageno="+i,true);
xmlhttp.send();
}
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");
Folder folder=store.getFolder(info.getUrl());
int count = folder.getMessageCount();
int unread = folder.getUnreadMessageCount();
Integer messageno=Integer.parseInt(request.getParameter("messageno"));
Message[] message = folder.getMessages();
String ssubject=message[messageno].getSubject();
**//String from=message[messageno].getFrom()[0]; //program stops working when uncomment this line**
%>
<html><head>
<title>Home Page</title>
<link rel="stylesheet" type="text/css" href="styleforcomposemail.css" />
</head>
<body>
<center>
<form action='sendmail' method='post'>
<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='' /></b>Add "," For Sending Multiple Mails</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 : <%=ssubject%>' /></td>
</tr>
<tr bgcolor='#CFECEC'>
<td colspan='2'><textarea id="textAreaa" onmouseover="javascript:setTextToTextArea('<%=data%>')" rows='32' cols='135' name='data' on>
Display Message Data here...come on..!!
</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>