2016-06-29 4 views
9

Erprobt mit Personalisierung mit Substitution wie %body%. Ich bekomme jedoch eine Fehlermeldung Substitutions are limited to 10000 bytes per personalization. Grundsätzlich würde der gesamte Körper von Empfänger zu Empfänger unterschiedlich sein.Sendgrid: Senden Sie verschiedene E-Mails an verschiedene Empfänger in einer Anfrage

Gibt es eine andere effiziente Möglichkeit, verschiedene E-Mails an verschiedene Empfänger zu senden?

Senden einer Mail pro Anfrage wäre sehr langsam.

BITTE BEACHTEN SIE: Vorlage ist keine Option, da die E-Mails basierend auf der aktuellen Aktivität des Benutzers erstellt werden.

+0

Vielleicht mit Abschnitten: https://sendgrid.com/docs/API_Reference/SMTP_API/section_tags.html – Petah

+0

@Petah Das ist, was ich versucht habe, mit '% body%' aber Limit von 10000 Bytes ist überschritten. –

+0

Sie sollten wahrscheinlich nur den 'template' Parameter während der Anfrage verwenden, um Speicherplatz zu sparen. – Jodo1992

Antwort

1

Ich denke, dass was Sie fragen, ist einfach nicht möglich unter Sendgrid-API. Sie bieten Ihnen bereits eine Option, Variablen (10000 Bytes) einzuschließen, um dies zu tun.

Vorschlag # 1: Sie können ein Queue (ApacheMQ oder Amazon SQS) System mit einigen Arbeitern verwenden, um den Versand von E-Mails zu verarbeiten. Die Warteschlange soll verhindern, dass E-Mails nicht zugestellt werden, und die Mitarbeiter können mehrere E-Mails gleichzeitig senden (2 Mitarbeiter, 2 E-Mails werden parallel gesendet).

Vorschlag # 2: Haben Sie einen einfachen Cronjob, der alle 5 Minuten läuft (Sie müssen das berechnen, je nachdem, wie viele E-Mails gesendet werden müssen und welche Verzögerung die E-Mails sind) und erhält 100 Kunden, an die E-Mails gesendet werden sollen, basierend auf einer Spalte einer Datenbank, die Ihnen mitteilt, ob Sie die E-Mail gesendet haben oder nicht, sodass Sie nicht mehr als eine E-Mail an denselben Kunden senden müssen.

Idealerweise bleibe ich beim ersten Vorschlag, aber es könnte mehr Arbeit erfordern. Sie könnten mit # 2 beginnen und dann Stück für Stück an # 1 arbeiten.

Hoffe es hilft!

+0

Ich verwende derzeit den # 2 Weg. E-Mails sofort nacheinander versenden. Ich weiß nicht, ob die Anzahl der API-Aufrufe an Sendgrid begrenzt ist. –

+0

Sie müssen das überprüfen, aber ich glaube, dass sie mehr oder weniger OK sind, solange Sie E-Mails an Leute senden, die zustimmen, dass Sie ihnen E-Mails schicken, und da Sie per E-Mail senden, sollte Sendgrid damit einverstanden sein . –

0

Ich lief auch auf die 10000 Bytes Grenze. In meinem Fall war es ein Randfall, also habe ich für diese Anrufe ein Fallback hinzugefügt, das reguläres SMTP-Senden verwendet.

  1. Anruf SendGrid API und den HTML-Code für die
  2. Iterate die Ersetzungen Vorlage holen und Betreff und
  3. Iterate die Empfänger ersetzen und einen SMTP-Anruf pro Empfänger tun

Keine Option für jeden, aber es war sehr einfach, an Ort und Stelle zu kommen.

+0

Ich habe auch so etwas getan, manuell Elemente in HTML ersetzt und einzelne E-Mails gesendet. Dieser Prozess ist jedoch langsam. Wäre toll gewesen, wenn es in sendgrid einen Weg gegeben hätte, jede Mail in einem Anruf zu versenden. Spart Zeit und CPU-Nutzung. –

Verwandte Themen