E-Mail-Betreffzeile bei eingehenden Nachrichten entfernen?

Liebes Forum,

ich hole E-Mails von einer Mailingliste in Discourse ab; die Betreffzeilen der Mails erzeugen neue Themen. Das funktioniert gut.
Jetzt muss ich den ersten Teil des Betreffs entfernen, da es sich dabei nur um den Namen der Mailingliste handelt: „[mailinglist] tatsächliches Thema

Ich dachte, es gäbe Code darin, der das entfernt, aber ich habe seit 3 Jahren keine mbox-Migration mehr durchgeführt.

Der Titel wird in ...mbox/importer.rb festgelegt:

    def map_first_post(row)
      mapped = map_post(row)
      mapped[:category] = category_id_from_imported_category_id(row['category'])
      mapped[:title] = row['subject'].strip[0...255]
      mapped
    end

Sie können die Titelzeile so ändern:

  mapped[:title] = row['subject'].strip[0...255].gsub(/^[.*?\]/,"")

Ich bekomme Regex-Ausdrücke selten beim ersten Versuch richtig, also sollten Sie etwas testen (und vielleicht auf http://rubular.com/ experimentieren).

Danke, dass du das angesprochen hast.
Ich nehme an, der RegEx wäre wie /^\[(.*?)\]\s/, um alles am Anfang der Zeile wie "[…] " zu matchen.

Könntest du bitte genauer beschreiben, wo der importer.rb auf meiner Installation zu finden ist (ich habe die Anleitung „under 30 min install

Wenn Sie sich innerhalb des Containers befinden

cd /var/discourse
./launcher enter app

versuchen Sie von dort, wo Sie das Skript ausführen, Folgendes:

find . -name importer.rb

Ich habe die Datei mbox/importer.rb mit dem korrigierten RegEx geändert und habe auch einen statischen Ersetzungsstring ausprobiert, ohne dass sich an den eingehenden Themen etwas geändert hat.

Ich werde es noch einmal präzisieren:

  • Ich habe die E-Mail-Adresse der betreffenden Discourse-Kategorie (benutzerdefinierte Adresse für eingehende E-Mails; √ die Kategorie spiegelt die Mailingliste wider) für die bestehende Mailingliste abonniert.
  • Discourse empfängt diese E-Mails und erstellt entsprechende Themen.
  • Da die Mailingliste dem Betreff der E-Mail ein Präfix hinzufügt, möchte ich dieses entfernen, bevor Discourse das Thema erstellt.

Meine Fragen jetzt:

  1. Ist ./script/import_scripts/mbox/importer.rb der richtige Importer?
  2. Ist die Syntax von .gsub("remove this prefix ","") korrekt?

Ich habe Folgendes ausprobiert:
mapped[:title] = row['subject'].strip[0...255].gsub(/^\[(.*?)\]\s/,"")

Bisher hat sich dadurch nichts geändert…
Nochmals vielen Dank.

Der Importeur hat damit nichts zu tun. Du benötigst entweder ein Plugin (das sollte nicht mehr als ein paar Zeilen Code erfordern) oder einen Consumer für den Webhook topic_created, der die API nutzen kann, um den Titel des Themas zu ändern.

Ich habe das völlig missverstanden. Ich dachte, du hättest mbox-Dateien, die du importieren wolltest. Alles, was ich gesagt habe, trifft auf deine Situation nicht zu. Entschuldige.