Seite 1 von 1

Re: Superwebmailer & spamcheck.postmarkapp.com json-api

Verfasst: 25.08.2018, 15:13
von rzwet
Danke für die Unterstützung.

Erst die Änderung auf 'https...' in der Spalte 'SpamTestExternalURL' der Tabelle 'options' führte zum Ergebnis.

Re: Superwebmailer & spamcheck.postmarkapp.com json-api

Verfasst: 23.08.2018, 11:13
von mirko
rzwet hat geschrieben: 22.08.2018, 20:56
$MIME = file_get_contents( $_FILES['SpamTestFile']['tmp_name'] );
Die Datei so verwenden, wie ich es in diesem Script vorgegeben habe. Per move_uploaded_file ins Upload-Verzeichnis übernehmen lassen.

Re: Superwebmailer & spamcheck.postmarkapp.com json-api

Verfasst: 23.08.2018, 11:11
von mirko
Ja das stimmt, nur http:// ist derzeit möglich, in der nächsten Version wird auch https:// gehen.

Re: Superwebmailer & spamcheck.postmarkapp.com json-api

Verfasst: 22.08.2018, 21:03
von rzwet
als externes Script kann man unter Einstellungen -> Optionen -> Spam-Test nur
http://newsletter.buendnis-depression-l ... ternal.php
sicher.

Es müsste aber https.... sein

Re: Superwebmailer & spamcheck.postmarkapp.com json-api

Verfasst: 22.08.2018, 20:56
von rzwet
Habe in spamtest_external.php die Änderungen durchgeführt
.......
# Systemvoraussetzungen: PHP 4 und Windows/Unix #
#############################################################################

error_reporting(E_ALL);

echo '<font face="courier">';

$MIME = file_get_contents( $_FILES['SpamTestFile']['tmp_name'] );

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
.......

$MIME ist aber leer. Wo ist der Fehler?

Re: Superwebmailer & spamcheck.postmarkapp.com json-api

Verfasst: 08.05.2018, 15:08
von rzwet
Super und vielen Dank

Re: Superwebmailer & spamcheck.postmarkapp.com json-api

Verfasst: 08.05.2018, 14:56
von mirko
Das Script spamtest_external.php modifizieren, statt dem Aufruf

Code: Alles auswählen

    $cmd = ('spamassassin -t -L <'.$filename.' >'.$filename.'.out');
    system ($cmd);
muss dort der eigene Aufruf rein, §filename ist die .eml-Datei.

Die .out Datei braucht man nicht, das ist nur wegen des spamassassin-Aufrufs, direkt das Ergebnis mit print $Ergebnis; ausgeben, fertig ist es.

Re: Superwebmailer & spamcheck.postmarkapp.com json-api

Verfasst: 08.05.2018, 14:20
von rzwet
SpamAssassin ist somit nicht erforderlich.

1. Wäre dies die Vorgehensweise?
- xxx Datei in userfiles/2/export lesen
- Spamscore ermitteln.
- xxx.out Datei in userfiles/2/export schreiben dabei die Zeilen
X-Spam-Flag: YES oder X-Spam-Flag: NO
X-Spam-Status: Yes, score=6.4 required=5.0 oder X-Spam-Status: N0, score=0.2 required=5.0
incl. CR NL vor die xxx Datei einfügen.

2. In welcher Variablen steht der Filename (xxx)?
3. URL in Optionen->Spam-Test leer lassen?

Re: Superwebmailer & spamcheck.postmarkapp.com json-api

Verfasst: 08.05.2018, 10:53
von mirko
Sicher kann man das selbst in die spamtest_external.php implementieren, die übergebene Datei ist eine komplette .EML/RFC-822-Datei.

Superwebmailer & spamcheck.postmarkapp.com json-api

Verfasst: 07.05.2018, 19:09
von rzwet
Wir würden gern zur Ermittlung des Spamscore die JASON API vom postmarkapp.com verwenden.
In der Datei spamtest_external.php sehen wir dazu keine Möglichkeiten.

Kann die Schnittstelle verwendet werden?

Doku: https://spamcheck.postmarkapp.com/doc/

PHP-Beispiel:

<?php
....................
$MIME = file_get_contents('spamtest5b46616b971977cac4b71bf62a265eb5');
//$MIME = file_get_contents('spamassassin-test.txt');

$spam_score = get_spam_score($MIME);

if ($spam_score >= 5 OR $spam_score === FALSE)
{ echo "Bitte pr&uuml;fen Sie die eMail. SpamScore: " . $spam_score;
}
else
{ echo "SpamScore: " . $spam_score;
}
....................

/**
* returns the spam score of a raw email using api from postmarkapp
* @param string $raw_email entire RAW email with headers etc....
* @return numeric/false spam score or FALSE is something went wrong....
*/
function get_spam_score($raw_email)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, 'http://spamcheck.postmarkapp.com/filter');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array('email' => $raw_email,'options'=>'short')));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);

$response = curl_exec($ch);

//something went wrong with the request
if(empty($response) || curl_error($ch) || curl_getinfo($ch, CURLINFO_HTTP_CODE) !== 200)
{ curl_close($ch);
return FALSE;
}

curl_close($ch);

$score = json_decode($response);

if ($score->success == TRUE AND is_numeric($score->score))
return $score->score;
else
return FALSE;
}

?>