Wp-Mailblog ist kein Plug-In im herkömmlichen Sinne. Es ist nur ein Script, dass die Funktionen von wp-mail erweitert. Es liegt ja auch nicht im plugin Ordner, sondern im Hauptverzeichnis.
Im Prinzip hast Du schon recht, allerdings liegen hier 2 Probleme vor. Erstmal der "Fehler" mit dem sofort veröffentlichen.
Ich habe nirgends eine Dokumentation gefunden, die GENAU beschreibt WANN Mails sofort veröffentlicht und wann nur als Entwurf angelegt werden. Es heißt nur immer, dass ab WP2.5 "bekannte E-Mail Adressen" sofort und unbekannte E-Mail Adressen als Entwurf veröffentlicht werden. Was heißt das konkret und vor allem, wo finde ich genau dies in welchem Script? Das hat erst mal nix mit dem wp-mailblog zu tun und würde mir schon sehr weiterhelfen.
Nun zu den fehlenden Bildanhängen. Das hat natürlich mit wp-mailblog zu tun, da es ja gerade die Funktion ist, um die man wp-mail erweitern möchte. Also hier ist mal das Script von wp-mailblog.
<
echo "<p>Stelle Verbindung zum Mail-Server her...<br/>";
if (! $mail = imap_open( "{" . $MAIL_SERVER . ":" . $MAIL_SERVER_PORT . "/pop3/notls}INBOX", $MAIL_USERNAME, $MAIL_PASSWORD))
die("Keine Verbindung zum Mail-Server...</p>");
$headerstrings = imap_headers($mail);
echo count($headerstrings) . " neue E-Mails auf dem Server...</p>";
foreach ($headerstrings as $headerstring) {
$multipart = FALSE;
$imagecounter = 1;
preg_match("/[0-9]/", $headerstring, $number);
// parse message and sender
$header = imap_fetchheader($mail, $number[0]);
preg_match("/Date: (.*)?[\+|-]/", $header, $date);
$date = htmlentities($date[1]);
$date = date($DATE_FORMAT, strtotime($date));
$headerinfo = imap_headerinfo($mail, $number[0], 256, 256);
$email = " <" . $headerinfo->from[0]->mailbox . "@" . $headerinfo->from[0]->host . ">";
$decode = imap_mime_header_decode($headerinfo->from[0]->personal);
$sender = $decode[0]->text;
$sender .= $email;
$decode = imap_mime_header_decode($headerinfo->fetchsubject);
$subject = $decode[0]->text;
$imap = imap_fetchstructure($mail, $number[0]);
if (! empty($imap->parts)) {
for($i = 0, $j = count($imap->parts); $i < $j; $i++) {
$part = $imap->parts[$i];
if ($part->bytes < $MAX_IMAGE_SIZE) {
$msg = imap_fetchbody($mail, $number[0], $i + 1);
// save image
if ($part->disposition == ATTACHMENT || $part->type == TYPEIMAGE || ($part->type == TYPEAPPLICATION && $part->subtype <> "SMIL")) {
if ($part->subtype == "JPEG" || $part->subtype == "OCTET-STREAM") {
if (! $handle = @fopen("$PICTURE_FOLDER/" . md5($date) . "_$imagecounter.jpg", "w"))
die("Keine Rechte f¸r Bildspeicherung...<br/>");
echo "<p>Speichere E-Mail-Anhang...<br/>";
fwrite($handle, imap_base64($msg));
fclose($handle);
create_thumbnail(md5($date) . "_$imagecounter.jpg");
$bildname[$imagecounter-1] = md5($date) . "_$imagecounter.jpg";
$imagecounter++;
}
}
elseif (($part->type == TYPETEXT || $part->type == TYPEMULTIPART || $part->disposition == INLINE) && ! $multipart) {
$body = $msg;
if (preg_match("#/9j/#", $body)) {
preg_match("#.*(/9j/.*)--.*#Ums", $body, $buffer);
$img = $buffer[1];
if ($part->subtype == "JPEG" || $part->subtype == "OCTET-STREAM") {
if (! $handle = @fopen("$PICTURE_FOLDER/" . md5($date) . "_$imagecounter.jpg", "w"))
die("Keine Rechte f¸r Bildspeicherung...<br/>");
echo "<p>Speichere E-Mail-Anhang...<br/>";
fwrite($handle, imap_base64($img));
fclose($handle);
create_thumbnail(md5($date) . "_$imagecounter.jpg");
$imagecounter++;
}
}
if (preg_match("/#(.*)#/Ums", $body))
$multipart = TRUE;
else {
$body = imap_base64($body);
}
}
if ($part->subtype == "SMIL" && ! $multipart)
$body = imap_base64($body);
}
else
$body = '';
}
}
else
$body = imap_body($mail, $number[0]);
// extract message
if (preg_match("/=23/", $body))
preg_match("/=23(.*)=23/Ums", $body, $message);
else
preg_match("/#(.*)#/Ums", $body, $message);
// handle soft and hard CRs
$message[1] = preg_replace("/ \r\n/", " ", trim($message[1]));
$message[1] = preg_replace("/\n/", "<br />", trim($message[1]));
// decode message according to charset
if (preg_match("/=C3/", $message[1]))
$message[1] = utf8_decode(quoted_printable_decode($message[1]));
else
$message[1] = quoted_printable_decode($message[1]);
$message[1] = preg_replace("/ = /", " ", $message[1]);
$message[1] = preg_replace("/'/", "\'", $message[1]);
$message[1] = preg_replace("/‰/", "ä", $message[1]);
$message[1] = preg_replace("/ƒ/", "Ä", $message[1]);
$message[1] = preg_replace("/¸/", "ü", $message[1]);
$message[1] = preg_replace("/‹/", "Ü", $message[1]);
$message[1] = preg_replace("/ˆ/", "ö", $message[1]);
$message[1] = preg_replace("/÷/", "Ö", $message[1]);
$message[1] = preg_replace("/fl/", "ß", $message[1]);
$subject = preg_replace("/‰/", "ä", $subject);
$subject = preg_replace("/ƒ/", "Ä", $subject);
$subject = preg_replace("/¸/", "ü", $subject);
$subject = preg_replace("/‹/", "Ü", $subject);
$subject = preg_replace("/ˆ/", "ö", $subject);
$subject = preg_replace("/÷/", "Ö", $subject);
$subject = preg_replace("/fl/", "ß", $subject);
// write message, author and date into appropriate arrays
if (($message[1]!="" || $bildname!="") && preg_match("/({$ALLOWED_SENDERS})/", $sender)) {
if (! $DISPLAY_EMAIL)
$sender = preg_replace('/(.+) <.+>/U', '$1', $sender);
// Kontrollausgabe
$gmtdate = date($DATE_FORMAT, (strtotime($date) - get_settings('gmt_offset') * 3600));
?>
Alles anzeigen