Hi Arpit, Please don't use "Urgent" in the subject field on this mailing list. It makes it very likely that your message will be marked as spam.
-Endre On Tue, Apr 7, 2015 at 11:55 PM, Arpit Rajpurohit < [email protected]> wrote: > Hello, > > I am new to Akka, Scala. > > I have to build a service which sends emails with attachment to emailIds > given. I am using Sendgrid as a gateway. > > For the attachment I have a file uploaded in S3 of size 28KB. > > I have REST service to which I can pass document Id through which I can > fetch the document as InputStream. Now this input Stream has to be sent to > many email Ids . All this downloading the file is handled by an actor > called "attachmentActor" which I am creating below. > > Now lets say I have two emailIds which I need to send that attachment to, > the problem I am facing is its not sending complete file to both , infact > 28KB file gets divided into 16KB and 12KB which are finally sent to > emailIds. > > so emailId 1 would receive 16KB //it should actually have 28KB > > email 2 would receive 12KB //it should actually have 28KB > > Following is the code. > > class SendgridConsumer{ > def receive(request: EmailRequest) = { > val service = Sendgrid(username , password) > val logData = request.logData > var errorMessage = new String > val attachmentRef = system.actorOf(Props[AttachmentRequestConsumer], > "attachmentActor") > val future = attachmentRef ? AttachmentRequest(request.documentId.get) > var targetStream = Await.result(future, > timeout.duration).asInstanceOf[InputStream] > val results = request.emailContacts.par.map( emailContact => { > val email=postData(new Email(),request , emailContact, > targetStream,request.documentName.get) > val sendGridResponse=service.send(email) > > } > } > > postData() creates an Email Object > > *This is my Attachment Actor* > > class AttachmentRequestConsumer extends Actor with ActorLogging { > > def receive = { > > case request:AttachmentRequest => { > > log.info(" inside Attachment RequestConsumer with document Id:" + > request.documentId) > val req: HttpRequest = Http(url) > val response = req.asBytes > var targetStream = ByteSource.wrap(response.body).openStream() > log.info("response body :" + response.body) > sender ! targetStream > targetStream.close() > } > } > } > > Thanks, > Arpit. > > -- > >>>>>>>>>> Read the docs: http://akka.io/docs/ > >>>>>>>>>> Check the FAQ: > http://doc.akka.io/docs/akka/current/additional/faq.html > >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user > --- > You received this message because you are subscribed to the Google Groups > "Akka User List" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/akka-user. > For more options, visit https://groups.google.com/d/optout. > -- Akka Team Typesafe - Reactive apps on the JVM Blog: letitcrash.com Twitter: @akkateam -- >>>>>>>>>> Read the docs: http://akka.io/docs/ >>>>>>>>>> Check the FAQ: >>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user --- You received this message because you are subscribed to the Google Groups "Akka User List" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/d/optout.
