Hi, Thanks for replying, but my mail quota is still under the max limit. I am still clueless about this issue. And I do not have any other applications on this account which are sending emails.
MailMail API Calls [image: 61%] 61%61 of 100OkayRecipients Emailed [image: 3%] 3%66 of 2,000OkayAdmins Emailed [image: 0%] 0%0 of 5,000OkayMessage Body Data Sent [image: 0%] 0%0.00 of 0.06 GBytesOkayAttachments Sent [image: 0%] 0%0 of 2,000OkayAttachment Data Sent [image: 0%] 0%0.00 of 0.10 GBytesOkay On Sat, Jun 18, 2011 at 8:43 PM, Branko Vukelic <[email protected]> wrote: > Email has multiple quotas. It's not just the number of email sent, but > also the size of the messages, etc. > > Mail API Calls 100 > Recipients Emailed 2,000 > Admins Emailed 0 of 5,000 > Message Body Data Sent 0.06 GBytes > Attachments Sent 2,000 > Attachment Data Sent 0.10 GBytes > > You can see how you're doing in Quota details section. > > On Sun, Jun 19, 2011 at 2:36 AM, nrworld <[email protected]> wrote: > > I forgot to mention that the email-id are proper and do not contain > > any " or any spl. character. It just that for some reason, the app > > will stop sending emails after 66 emails (App Dashboard shows 66mails > > sent). > > > > Even re-uploading the app does not solve the issue. > > > > > > On Jun 18, 5:52 pm, nrworld <[email protected]> wrote: > >> Hi, > >> > >> This is something strange that is happening with my app. It stops > >> sending new mail after 66 mails everyday (I can send mail again after > >> quota reset). Any pointers would be very helpful. > >> > >> The following is the portion of my code which sends email: > >> > >> public String sendEmail(InviteeInfo inviteeInfo) throws Exception { > >> CapabilitiesService service = CapabilitiesServiceFactory > >> .getCapabilitiesService(); > >> CapabilityStatus status = > service.getStatus(Capability.MAIL) > >> .getStatus(); > >> > >> if (status == CapabilityStatus.DISABLED) { > >> throw new Exception("Google mail service is > unavailable"); > >> } > >> > >> Properties props = new Properties(); > >> Session session = Session.getDefaultInstance(props, > null); > >> > >> String msgBody = getEmailBody(inviteeInfo); > >> > >> try { > >> Message msg = new MimeMessage(session); > >> msg.setFrom(new InternetAddress( > >> " > [email protected]", "APP OWNER")); > >> > >> msg.addRecipient(Message.RecipientType.TO, new > InternetAddress( > >> inviteeInfo.getEmailId().trim(), > inviteeInfo.getCallName() > >> .trim())); > >> msg.addRecipient(Message.RecipientType.BCC, new > InternetAddress( > >> user.getEmail(), > user.getNickname())); > >> msg.setSubject("~~~~ You Are Invited ~~~~"); > >> msg.setContent(msgBody, "text/html"); > >> msg.addHeader("Content-Type", "text/html"); > >> Transport.send(msg); > >> } catch (Exception e) { > >> log.warning("Exception at " + > inviteeInfo.getEmailId() > >> + " from your id " + > user.getEmail() + "\n" > >> + getException(e)); > >> } > >> return "not successful"; > >> } > >> > >> Exception points to the line - "Transport.send(msg);", which means > >> that the Google mail service was up and running at the time. > >> > >> And this is the exception message > >> net.nrworld.server.InviteManagerServiceImpl sendEmail: > >> javax.mail.SendFailedException: MailService IO failed > >> (java.io.IOException: Internal error) > >> at > >> > com.google.appengine.api.mail.stdimpl.GMTransport.sendMessage(GMTransport.java: > >> 253) > >> at javax.mail.Transport.send(Transport.java:95) > >> at javax.mail.Transport.send(Transport.java:48) > >> at > >> > net.nrworld.server.InviteManagerServiceImpl.sendEmail(InviteManagerServiceImpl.java: > >> 217) > >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > >> at > >> > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: > >> 57) > >> at > >> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: > >> 43) > >> at java.lang.reflect.Method.invoke(Method.java:616) > >> at > >> > com.google.apphosting.runtime.security.shared.intercept.java.lang.reflect.Method_ > >> $1.run(Method_.java:165) > >> at java.security.AccessController.doPrivileged(Native Method) > >> at > >> > com.google.apphosting.runtime.security.shared.intercept.java.lang.reflect.Method_.privilegedInvoke(Method_.java: > >> 163) > >> at > >> > com.google.apphosting.runtime.security.shared.intercept.java.lang.reflect.Method_.invoke_(Method_.java: > >> 124) > >> at > >> > com.google.apphosting.runtime.security.shared.intercept.java.lang.reflect.Method_.invoke(Method_.java: > >> 43) > >> at > >> com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java: > >> 569) > >> at > >> > com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java: > >> 208) > >> at > >> > com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java: > >> 248) > >> at > >> > com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java: > >> 62) > >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) > >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > >> at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: > >> 511) > >> at org.mortbay.jetty.servlet.ServletHandler > >> $CachedChain.doFilter(ServletHandler.java:1166) > >> at > >> > com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java: > >> 97) > >> at org.mortbay.jetty.servlet.ServletHandler > >> $CachedChain.doFilter(ServletHandler.java:1157) > >> at > >> > com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java: > >> 35) > >> at org.mortbay.jetty.servlet.ServletHandler > >> $CachedChain.doFilter(ServletHandler.java:1157) > >> at > >> > com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java: > >> 43) > >> at org.mortbay.jetty.servlet.ServletHandler > >> $CachedChain.doFilter(ServletHandler.java:1157) > >> at > >> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: > >> 388) > >> at > >> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java: > >> 216) > >> at > >> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: > >> 182) > >> at > >> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: > >> 765) > >> at > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: > >> 418) > >> at > >> > com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java: > >> 249) > >> at > >> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: > >> 152) > >> at org.mortbay.jetty.Server.handle(Server.java:326) > >> at > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: > >> 542) > >> at org.mortbay.jetty.HttpConnection > >> $RequestHandler.headerComplete(HttpConnection.java:923) > >> at > >> > com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java: > >> 76) > >> at > org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) > >> at > >> > com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java: > >> 135) > >> at > >> > com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java: > >> 260) > >> at com.google.apphosting.base.RuntimePb$EvaluationRuntime > >> $2.handleRequest(RuntimePb.java:9673) > >> at > com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java: > >> 422) > >> at > com.google.net.rpc.impl.Server$RpcTask.runInContext(Server.java: > >> 573) > >> at com.google.tracing.TraceContext$TraceContextRunnable > >> $1.run(TraceContext.java:448) > >> at > com.google.tracing.TraceContext.runInContext(TraceContext.java: > >> 688) > >> at com.google.tracing.TraceContext > >> > $AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java: > >> 326) > >> at com.google.tracing.TraceContext > >> $AbstractTraceContextCallback.runInInheritedContext(TraceContext.java: > >> 318) > >> at com.google.tracing.TraceContext > >> $TraceContextRunnable.run(TraceContext.java:446) > >> at > >> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java: > >> 1110) > >> at java.util.concurrent.ThreadPoolExecutor > >> $Worker.run(ThreadPoolExecutor.java:603) > >> at java.lang.Thread.run(Thread.java:636) > >> Caused by: java.io.IOException: Internal error > >> at > >> > com.google.appengine.api.mail.MailServiceImpl.doSend(MailServiceImpl.java: > >> 111) > >> at > >> com.google.appengine.api.mail.MailServiceImpl.send(MailServiceImpl.java: > >> 32) > >> at > >> > com.google.appengine.api.mail.stdimpl.GMTransport.sendMessage(GMTransport.java: > >> 247) > >> ... 51 more > > > > -- > > You received this message because you are subscribed to the Google Groups > "Google App Engine" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > [email protected]. > > For more options, visit this group at > http://groups.google.com/group/google-appengine?hl=en. > > > > > > > > -- > Branko Vukelić > [email protected] > > Lead Developer > Herd Hound (tm) - Travel that doesn't bite > www.herdhound.com > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/google-appengine?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
