2017-08-18 3 views
1

Hier ist meine Übertragungsobjekt:Wie benutzt man sparkpost ohne CC und/oder BCC recepient?

if(req.body.bcc === ''){ 
 
    req.body.bcc = ''; 
 
    } 
 
    if (req.body.cc === '') { 
 
    req.body.cc = ''; 
 
    } 
 
    if (req.body.subject === '') { 
 
    req.body.subject = 'No subject'; 
 
    } 
 
    if (req.body.source === '') { 
 
    req.body.source = '<EMAIL OMITTED>'; 
 
    } 
 
    if (req.body.messageBody === '') { 
 
    req.body.messageBody = 'No body text has been entered'; 
 
    } 
 
    var transmission = { 
 
    recipients: [ 
 
     { 
 
     address: { 
 
      email: req.body.to, 
 
      name: 'To recipient' 
 
     }, 
 
     substitution_data: { 
 
      recipient_type: 'Original' 
 
     } 
 
     } 
 
    ], 
 
    cc: [ 
 
     { 
 
     address: { 
 
      email: req.body.cc, 
 
     }, 
 
     substitution_data: { 
 
      recipient_type: 'CC' 
 
     } 
 
     } 
 
    ], 
 
    bcc: [ 
 
     { 
 
     address: { 
 
      email: req.body.bcc, 
 
     }, 
 
     substitution_data: { 
 
      recipient_type: 'BCC' 
 
     } 
 
     } 
 
    ], 
 
    content: { 
 
     from: { 
 
     name: req.body.source, 
 
     email: req.body.source 
 
     }, 
 
     subject: req.body.subject, 
 
     text: req.body.messageBody, 
 
     html: `<p></p>` 
 
    } 
 
    };

I HTML Eingabeformulare, die die eingegebenen Daten req.body schicken, aber wenn gibt es keine req.body.cc oder req.body.bcc Inhalt, was passiert ist, Sparkpost eine Fehlermeldung, unaccessible Einheit führt und:

name: 'SparkPostError', 
 
    errors: 
 
    [ { message: 'Invalid header', 
 
     description: 'Error while validating header CC: Missing header content', 
 
     code: '3002' } ], 
 
    statusCode: 422 }

Wenn ich eine Zufallszahl wie 1 in den cc und bcc Felder, dann die Nachricht an die "an" Benutzer sendet, aber sparkpost sagt mir, dass die Nachricht nicht an 2 Empfänger senden konnte. Ich habe das Gefühl, dass ich hier etwas verpasse, denn wenn es keine bcc- oder cc-Empfänger gibt, sollte es einfach an die E-Mail im "to" -Feld gesendet werden und ich sollte kein zufälliges Kauderwelsch in cc oder bcc eingeben müssen, um es zu bekommen eine E-Mail senden. Ist jemand auf dieses Problem gestoßen oder hat er eine Idee, wie ich dieses Problem lösen könnte?

Vielleicht kann ich überprüfen, wo, wenn das Feld leer ist, ersetzen Sie es mit einem Standardwert, dass Sparkpost weiß, dass ich nicht versuche, eine E-Mail an jemanden dort, wie ein Platzhalter zu senden. Aber wenn es so etwas gibt, habe ich es noch nicht gefunden.

+2

Vermeiden Sie einfach erstellen cc und bcc-Eigenschaft in Ihrem "Übertragung" -Objekt, wenn sie leer sind. – HungryCoder

Antwort

2

Hier ist ein Beispiel für das Senden einer E-Mail ohne CC oder BCC. Wenn Sie keine BCC- oder CC-Empfänger haben, schließen Sie ihre Array-Objekte nicht ein.

{ 
    "options": { 
     "open_tracking": true, 
     "click_tracking": true 
    }, 
    "campaign_id": "test", 
    "recipients": [ 
    { 
     "address": { 
     "email": "[email protected]", 
     "name": "To recipient" 
     }, 
     "tags": [], 
     "substitution_data": {"recipient_type": "Original"} 
    } 
    ], 
    "content": { 
    "from": { 
     "email": "[email protected]", 
     "name": "From address" 
    }, 
    "subject": "My Sample Subject", 
    "text": "{{recipient_type}}", 
    "reply_to": "[email protected]", 
    "html": "<p>{{recipient_type}}</p>" 
    } 
} 

Hier ist das Beispiel als curl Befehl:

curl -X POST \ 
    https://api.sparkpost.com/api/v1/transmissions \ 
    -H 'authorization: YOUR_API_KEY_HERE' \ 
    -H 'cache-control: no-cache' \ 
    -d '{ 
    "options": { 
     "open_tracking": true, 
     "click_tracking": true 
    }, 
    "campaign_id": "test", 
    "recipients": [ 
    { 
     "address": { 
     "email": "[email protected]", 
     "name": "To recipient" 
     }, 
     "tags": [], 
     "substitution_data": {"recipient_type": "Original"} 
    } 
    ], 
    "content": { 
    "from": { 
     "email": "[email protected]", 
     "name": "From address" 
    }, 
    "subject": "My Sample Subject", 
    "text": "{{recipient_type}}", 
    "reply_to": "[email protected]", 
    "html": "<p>{{recipient_type}}</p>" 
    } 
} 

' 

Sie benötigen, um Ihre API-Schlüssel und ersetzen die zu/von Adressen mit denen geeignet für Ihren Testfall zu setzen.