Product

Wohltätigkeitsorganisation Agape findet einfachen Weg zur E-Mail-Weiterleitung für Freiwillige weltweit

Dieser Beitrag wurde von Huey Ly verfasst. Huey ist ein Softwareentwickler, der in Xi'an, China, der Heimat der Terrakotta-Armee, lebt und arbeitet. Er ist Mitbegründer und Lead Developer von whyyu.com, einer Sprachlern-App, die chinesischen Kindern Englisch beibringt. In seiner Freizeit hilft er wohltätigen Organisationen, Technologie zu nutzen, um ihre Mission voranzutreiben. Er ist außerdem ein sehr mutiger Tänzer.
Bild für Wohltätigkeitsorganisation Agape findet einfachen Weg zur E-Mail-Weiterleitung für Freiwillige weltweit

Dieser Beitrag wurde von Huey Ly verfasst. Huey ist Softwareentwickler und lebt und arbeitet in Xi’an, China, der Heimat der Terrakotta-Armee. Er ist Mitbegründer und Lead Developer von whyyu.com, einer Sprachlern-App, die chinesischen Kindern Englisch beibringt. In seiner Freizeit hilft er wohltätigen Organisationen, Technologie zu nutzen, um ihre Mission voranzutreiben. Er ist außerdem ein sehr mutiger Tänzer.

Ich engagiere mich ehrenamtlich in Teilzeit bei der Agape Community Care Association (www.agape.org), einer NGO, die Waisenkindern und anderen benachteiligten Menschen in der chinesischen Provinz Shaanxi hilft. Agape beschäftigt Freiwillige und Personal aus der ganzen Welt, und die meisten ihrer E-Mail-Konten werden bei kostenlosen Anbietern wie Gmail, Hotmail oder Yahoo gehostet. Agape wollte, dass alle Freiwilligen eine eigene E-Mail-Adresse mit @agape.org.cn erhalten, um der Organisation auf lokaler und internationaler Ebene mehr Legitimität zu verleihen. Die Migration und Konsolidierung aller Postfächer einer solch vielfältigen Gruppe erwies sich jedoch als ziemliches Kopfzerbrechen. Darüber hinaus würden die zusätzlichen Kosten für all die extra Postfächer ihre ohnehin schon geringen finanziellen Mittel stark belasten (sie behalten nur 10 % der Spenden für Verwaltungszwecke ein, der Rest geht direkt an die Waisenhäuser und Gesundheitszentren). Was können sie tun?

E-Mail-Weiterleitung mit Routing

Mit dem Routing können Sie eine Reihe von Regeln dafür festlegen, wie eingehende Nachrichten verarbeitet werden sollen, etwa solche, die an @agape.org.cn gesendet werden. Genauer gesagt:

  • für welche Nachrichten Aktionen ausgeführt werden sollen (z. B. Nachrichten von einer bestimmten Person, mit einem bestimmten Betreff oder auch alle Nachrichten)
  • was Sie mit diesen Nachrichten tun möchten (z. B. an eine andere E-Mail-Adresse weiterleiten oder per POST an Ihre App senden)

Für Agape wollte ich alles erfassen, was an einen Nutzer mit einer @agape.org.cn-Adresse gesendet wird, und die E-Mail an eine andere Adresse weiterleiten. Mailgun bietet jedoch auch die Möglichkeit, die Nachricht an Ihre App zu posten: Mailgun sendet Ihnen entweder die gesamte ungeparste MIME-Nachricht (falls das Ihr Fall ist) oder parst sie für Sie und POSTet die geparsten Parameter. In beiden Fällen wird die Nachricht in UTF-8 transkodiert, was ein wirklich schöner Bonus ist.

Hunderte Routings auf einmal mit der API einrichten

Mithilfe des Routings von Mailgun konnte Agape alle E-Mails, die an [user]@agape.org.cn-Adressen gesendet wurden, an die persönlichen E-Mail-Konten aller Beteiligten weiterleiten. Keine Migrationen erforderlich. Darüber hinaus ermöglichte uns das API-System, ein Skript zu schreiben, das mithilfe einer CSV-Datei schnell und einfach Hunderte von Routings importiert. Lassen Sie mich Ihnen zeigen, was ich meine.

1. Zunächst erstellen wir eine CSV-Datei mit Quell- und Weiterleitungsadresse, getrennt durch Kommas, ein Paar pro Zeile, und zwar so:

example1@agape.org.cn, somemailbox@hotmail.com
example2@agape.orgcn, someotherbox@gmail.com

2. Als Nächstes erstellen wir eine Funktion, die die Mailgun-API aufruft, um „ein neues Routing hinzuzufügen“.

                                

                                    // php

function create_route($recipient, $routeto) {

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($ch, CURLOPT_USERPWD, 'api:key-xxxxxxxxxxxxxxxx);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    curl_setopt($ch, CURLOPT_URL, 'https://api.mailgun.net/v2/routes');
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
    curl_setopt($ch, CURLOPT_POSTFIELDS, array('priority' => 1,
        'expression' => 'match_recipient("' . $recipient . '")',
        'action[1]' => 'forward("' . $routeto . '")',
        'description' => 'Created by Mailgun Routes Importer'));

    $result = curl_exec($ch);
    $info = curl_getinfo($ch);
    curl_close($ch);
}
                                
                            

3. Dann erstellen wir eine Funktion, die die CSV-Datei in ein Array parst, dieses iteriert und die API-Funktion aufruft, um jedes Routing hinzuzufügen:

                                

                                    // php

function run_importer() {
    $filepath = "fwdaddresses.csv";
    if(($handle = fopen($filepath, "r")) != FALSE) {
        // loop and import
        while (($addresses = fgetcsv($handle, 1000, ",")) !== FALSE) {
            $recipient = trim($addresses[0]);
            $routeto = trim($addresses[1]);

            create_route($recipient, $routeto);
        }
    }
}
                                
                            

4. Stellen Sie dann einfach sicher, dass sich das Skript und die CSV-Datei im selben Verzeichnis befinden (oder ändern Sie die Variable $filepath so, dass sie dem Dateipfad Ihrer CSV-Datei entspricht), und führen Sie das Skript aus: run_importer();

Es ist wirklich ganz einfach. Mithilfe der Mailgun-Routing-API konnten wir schnell Hunderte von Weiterleitungsadressen hinzufügen, sodass das Personal und die Freiwilligen von Agape weltweit ganz einfach auf ihre Agape-E-Mails zugreifen können. Danke, Mailgun.