package com.ringtone.server; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Properties; import java.util.logging.Logger; import javax.jdo.PersistenceManager; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import com.google.appengine.tools.util.Logging; public class SendMailServlet extends HttpServlet { private static final Logger sLog = Logger.getLogger(SendMailServlet.class.getName()); @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String toEmail = req.getParameter(Const.EMAIL); String uuid = req.getParameter(Const.UUID); String fromEmail = Const.FROM_EMAIL; SongEntry songEntry = SearchUtils.getSongEntryByUUID(uuid); // add mail record here RecordEntry mailRecord = new RecordEntry(toEmail, uuid, songEntry.getFile_name()); PersistenceManager pm = PMF.get().getPersistenceManager(); try { pm.makePersistent(mailRecord); } catch (Exception e) { sLog.warning(e.getMessage()); } finally { pm.close(); } String fileName = songEntry.getFile_name(); fileName = songEntry.getUuid()+fileName.substring(0, fileName.lastIndexOf('.')); fileName += ".m4r"; String downloadLink = Const.S3_PREFIX_M4R+fileName; Properties props = new Properties(); Session session = Session.getDefaultInstance(props, null); String msgBody = Const.EMAIL_BODY1+"("+songEntry.getTitle()+")"+Const.EMAIL_BODY2+downloadLink+Const.EMAIL_BODY3; String msgSubject = Const.EMAIL_SUBJECT+"("+songEntry.getTitle()+")"; try { Message msg = new MimeMessage(session); msg.setFrom(new InternetAddress(fromEmail, "Ringtone Team")); msg.addRecipient(Message.RecipientType.TO, new InternetAddress(toEmail, "Dear User")); msg.setSubject(msgSubject); msg.setText(msgBody); Transport.send(msg); } catch (Exception e) { sLog.warning(e.getMessage()); } resp.getOutputStream().write("ok".getBytes()); resp.flushBuffer(); } }