Superwebmailer & spamcheck.postmarkapp.com json-api
Moderator: mirko
Re: Superwebmailer & spamcheck.postmarkapp.com json-api
Danke für die Unterstützung.
Erst die Änderung auf 'https...' in der Spalte 'SpamTestExternalURL' der Tabelle 'options' führte zum Ergebnis.
Erst die Änderung auf 'https...' in der Spalte 'SpamTestExternalURL' der Tabelle 'options' führte zum Ergebnis.
Re: Superwebmailer & spamcheck.postmarkapp.com json-api
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
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
http://newsletter.buendnis-depression-l ... ternal.php
sicher.
Es müsste aber https.... sein
Re: Superwebmailer & spamcheck.postmarkapp.com json-api
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?
.......
# 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
Super und vielen Dank
Re: Superwebmailer & spamcheck.postmarkapp.com json-api
Das Script spamtest_external.php modifizieren, statt dem Aufruf
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.
Code: Alles auswählen
$cmd = ('spamassassin -t -L <'.$filename.' >'.$filename.'.out');
system ($cmd);
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
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?
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
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
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ü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;
}
?>
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ü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;
}
?>