2016-06-15 12 views
0

Ich benutze Play Mailer (https://github.com/playframework/play-mailer), um E-Mails von meiner Anwendung an eine Gruppe von Personen zu senden, aber ich don ‚t wollen, dass ein Empfänger die Adressen der anderen Empfänger sehen kann (im Feld) ich fand, dass bcc diese lösen können, habe ich versucht, diese aber es hat nicht funktioniert:Fehler Verwenden von bcc mit play mailer und scala: addBcc ist kein Mitglied von play.api.libs.mailer.Email

package controllers 

import play.api.libs.mailer._ 
import java.io.File 
import org.apache.commons.mail.EmailAttachment 
import javax.inject.Inject 
import play.api._ 
import play.api.mvc._ 
import scala.concurrent.Future 
import play.api.libs.json._ 

class MailerApi @Inject() (mailerClient: MailerClient) extends Controller { 
    def sendEmail = Action.async(parse.json) { request => 
    val subject: String = (request.body \ "subject").as[String] 

    val cid = "1234" 
    val email = Email(
     subject, 
     "Me <[email protected]>", 
     Seq("Miss TO [email protected]"), 
     // adds attachment 
     attachments = Seq(), 
     // sends text, HTML or both... 
     bodyText = Some("A text message"), 
     bodyHtml = Some("content")).addBcc("<[email protected]>") 
    mailerClient.send(email) 
    Future.successful(Ok("ok !!")) 
    } 
} 

erhalte ich die Fehlermeldung:

value addBcc is not a member of play.api.libs.mailer.Email 
Read from stdout: possible cause: maybe a semicolon is missing before `value addBcc'? 
+0

'addBcc' ist nicht in Fallklasse 'Email' definiert. Wenn Sie sich den Code von'Email' Definition https://github.com/playframework/play-mailer/blob/master/src/main/scala/play/api/libs/mailer/MailerPlugin.scala#L284 hier ansehen Will ich 'Seq [String]' als Bcc-Parameter. Sie müssen also die E-Mail-Instanz selbst instanziieren. – curious

+0

Vielen Dank für Ihre Wiederholung, versuchte ich dies http://pastebin.com/WhWvE3JF aber bleiben Sie haben die gleiche Liste der Empfänger in der TO-Feld – Rajeun

+0

Ich habe dies nicht getestet, und ich denke, Feld wird nur 1 E-Mail haben, die Sie stellen andere zur Verfügung, die in bcc-Feld sind und Empfänger können sie nicht in E-Mail sehen. und ich habe nicht einmal verstanden, was meinst du damit "bleiben Sie haben die gleiche Liste der Empfänger in der TO-Feld" – curious

Antwort

0

Hier gehen Sie:

Paket-Controller

import play.api.libs.mailer._ 
import java.io.File 
import org.apache.commons.mail.EmailAttachment 
import javax.inject.Inject 
import play.api._ 
import play.api.mvc._ 
import scala.concurrent.Future 
import play.api.libs.json._ 

class MailerApi @Inject() (mailerClient: MailerClient) extends Controller { 
    def sendEmail = Action.async(parse.json) { request => 
    val subject: String = (request.body \ "subject").as[String] 

    val cid = "1234" 
    val email = Email(
     subject, 
     "ExcelWay <[email protected]>", 
     Seq("Miss TO [email protected]"), 
     // adds attachment 
     attachments = Seq(), 
     // sends text, HTML or both... 
     bodyText = Some("A text message"), 
     bodyHtml = Some("content"), 
     bcc= Seq("[email protected]") 
    ) 
    mailerClient.send(email) 
    Future.successful(Ok("ok !!")) 
    } 
} 
+0

meine Antwort bearbeitet es wird jetzt funktionieren, und ich habe nicht genau den Code ausgeführt, aber es ist nur ein Syntaxfehler Ich denke, Sie können es lösen;) – curious