Superwebmailer & spamcheck.postmarkapp.com json-api

PHP Newsletter Software/Script und E-Mail-Marketing Software SuperWebMailer

Moderator: mirko

Antworten
rzwet
Beiträge: 3
Registriert: 07.05.2018, 18:49

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

Beitrag von rzwet » 08.05.2018, 15:08

Super und vielen Dank

Benutzeravatar
mirko
Beiträge: 21302
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

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

Beitrag von mirko » 08.05.2018, 14:56

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.

rzwet
Beiträge: 3
Registriert: 07.05.2018, 18:49

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

Beitrag von rzwet » 08.05.2018, 14:20

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?

Benutzeravatar
mirko
Beiträge: 21302
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

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

Beitrag von mirko » 08.05.2018, 10:53

Sicher kann man das selbst in die spamtest_external.php implementieren, die übergebene Datei ist eine komplette .EML/RFC-822-Datei.

rzwet
Beiträge: 3
Registriert: 07.05.2018, 18:49

Superwebmailer & spamcheck.postmarkapp.com json-api

Beitrag von rzwet » 07.05.2018, 19:09

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;
}

?>

Antworten