My mail server sends email messages successfully when the user has Outlook Express set up on their desktop, but non-Outlook Express users get the following servlet error messages:
HTTP Status 500 - type Exception report
message description: The server encountered an internal error () that prevented it from fulfilling this request.
exception javax.servlet.ServletException
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)
org.apache.jsp.jsp.authorizePurchase_jsp._jspService(authorizePurchase_jsp.java:204)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)root cause
com.generic.exceptions.CustomerActivityException
com.generic.product.Order.recordOrder(Unknown Source)org.apache.jsp.jsp.authorizePurchase_jsp._jspService(authorizePurchase_jsp.java:151)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)note The full stack trace of the root cause is available in the Tomcat logs.
Apache Tomcat/5.0.16
Here is a copy of the source code that is used to send the email message:
package com.generic.product;
import java.util.Vector; import java.util.HashMap; import java.util.Iterator; import java.util.Properties; import java.text.NumberFormat; import java.sql.*; import org.apache.log4j.Category; import org.apache.turbine.services.db.TurbineDB; import org.apache.turbine.util.db.pool.DBConnection; import com.generic.product.Product; import java.util.ResourceBundle; import com.generic.customer.*; import com.generic.product.*; import com.generic.exceptions.*; import com.generic.cart.*; import javax.naming.NamingException; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingEnumeration; import javax.naming.directory.InitialDirContext; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import javax.mail.internet.AddressException; import javax.mail.Message; import javax.mail.Session; import javax.mail.MessagingException; import javax.mail.Transport; import javax.servlet.http.*; import com.braju.format.*;
public class Order {
private static ResourceBundle sql_bundle =
ResourceBundle.getBundle("com.generic.product.SQLQueries"); private static ResourceBundle email_bundle =
ResourceBundle.getBundle("com.generic.emailProperties");/**
* Mails a receipt for the order to the customer.
*
* @param email The address to mail the receipt to.
**/ public void emailReceipt(String email)
throws NamingException, AddressException, MessagingException {
Properties props = new Properties();
props.put("smtp.covad.net", "XXXXXX-YYYYYY1");
Session session = Session.getDefaultInstance(props, null);Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(email_bundle.getString("fromAddr")));
InternetAddress to[] = new InternetAddress[1];
to[0] = new InternetAddress(email);
message.setRecipients(Message.RecipientType.TO, to);
message.setSubject("Receipt for order " + getOrderNumber());
StringBuffer contents = new StringBuffer();
contents.append("Thank you for shopping at Generic Books.\n\n");
contents.append("Here is the receipt for your order " + getOrderNumber() +
" placed on " + getOrderDate() + "\n\n");
contents.append("CODE TITLE QUANT PRICE TOTAL\n");
contents.append("================================================================\n");
Iterator items = getItems().iterator();
while (items.hasNext()) {
CartItem it = (CartItem) items.next();
Parameters p = new Parameters();
p.add(it.getProduct().getPRODUCT_ID());
p.add(it.getProduct().getTitle());
p.add(it.getQuantity());
p.add(it.getProduct().getPrice());
p.add(it.getLineItemPrice());
contents.append(Format.sprintf("%-10.10s %-30.30s %2d $%5.2f $%5.2f\n", p));
}
message.setContent(contents.toString(), "text/plain");
Transport.send(message);
}
}
Questions:
1. My mail server permits messages to be relayed, and the email messages do work with Outlook Express. What do I need to add/change in the above code to get the messaging to work in all cases?
2. Does JavaMail only work with Outlook Express?
3. Is there some additional software that I need to be using to get JavaMail to work in all cases?
Please advise, Thanks
_________________________________________________________________
Get a FREE online virus check for your PC here, from McAfee. http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
