php Mail-funkton

Oke ich hab es nun bearbeitet es sieht jetzt so aus:

Funktion
PHP:
function eMail($empfanger, $betreff, $text){
    global $supportEmail, $projekt;

    $betreff 	= htmlspecialchars($betreff, ENT_QUOTES);
	$text 		= htmlspecialchars($text, ENT_QUOTES);
	
// Mail Header
    $header  = "From: ".$projekt."<".$supportEmail.">\r\n";
    $header .= "Reply-To: <".$empfanger.">\r\n";
    $header .= "Return-Path: ".$supportEmail."\r\n";
    $header .= "MIME-Version: 1.0\r\n";
    $header .= "Content-Type: text/html; charset=UTF-8\r\n";
    $header .= "Content-Transfer-Encoding: 8bit\r\n";
    $header .= "Message-ID: <".time()." ".$supportEmail.">\r\n";
    $header .= "X-Mailer: PHP v".phpversion()."\r\n\r\n";
    
// Vorlage laden und für den Versand vorbereiten
    $mailText = file_get_contents( 'inc/vor.email.html' );
    
// Platzhalter mit den Benutzereingaben ersetzen
    $mailText = str_replace( '###BETREFF###',  $betreff , $mailText );
    $mailText = str_replace( '###NACHRICHT###', nl2br($text), $mailText );
    
// Email versenden
    if(@mail( $empfanger, $betreff, $mailText, $header, "-f ".$supportEmail)){
        return TRUE;
    }else{
        return FALSE;
    }
}

Vorlage
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>###BETREFF###</title>
    <style type='text/css'>
        *{margin: 0px; padding: 0px; list-style-type: none;}
		h3{ padding: 15px 0px 20px 0px; }
		#hader{ padding-bottom: 12px;background-image: url(http://www.blacki.in/image/streifen1.png); background-repeat: repeat-x; background-position: bottom; }
		#footer{ padding: 15px 0px 20px 0px; }
		#section{ padding: 0px 8px 0px 8px;}
    </style>
</head>
 
<body>
    <div id="hader">
        <img height="80" alt="Logo" src="http://www.blacki.in/image/logo.png" />
    </div>
    <div id="section">
        <h3>###BETREFF###</h3>
        <p>###NACHRICHT###</p>
    </div>
    <div id="footer">
        <p><a href="http://www.blacki.in/impressum.php" >Impressum</a></p>
    </div>
    
</body>
</html>

Die Emails werden aber immer noch als Spam deklariert.:confused:

Return-Path: <support@blacki.in>
Delivered-To: test@test.de
Received: from mx3.goneo.de (mx3.goneo.de [85.220.129.26])
by mailbox1.goneo.de (Postfix) with ESMTP id 50D3D11F92F
for <test@test.de>; Tue, 21 Jan 2014 18:01:59 +0100 (CET)
X-Virus-Scanned: by goneo
X-Amavis-Alert: BAD HEADER SECTION, Missing required header field: "Date"
X-Spam-Flag: YES
X-Spam-Score: 6.495
X-Spam-Level: ******
X-Spam-Status: Yes, score=6.495 tagged_above=-9999 required=1
tests=[AWL=0.046, BAYES_00=-1.9, FROM_MISSP_REPLYTO=1.129,
HTML_IMAGE_ONLY_12=2.059, HTML_MESSAGE=0.001, INVALID_MSGID=0.568,
MIME_HTML_ONLY=0.723, MISSING_DATE=1.36, RCVD_IN_DNSWL_NONE=-0.0001,
TO_NO_BRKTS_FROM_MSSP=2.499, T_REMOTE_IMAGE=0.01] autolearn=no
Received: from mx3.goneo.de ([127.0.0.1])
by localhost (mx3.goneo.de [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id idA6RaDlr-Q7 for <test@test.de>;
Tue, 21 Jan 2014 18:01:58 +0100 (CET)
X-policyd-weight: using cached result; rate: -5.5
Received: from mail-out1.b-one.net (mail-out1.one.com [91.198.169.18])
by mx3.goneo.de (Postfix) with ESMTP id 38F0723F12A
for <test@test.de>; Tue, 21 Jan 2014 18:01:58 +0100 (CET)
Received: from 212.86.178.62 by http://www.blacki.in via /test2.php with HTTP; Tue, 21 Jan 2014 17:01:57 +0000
To: test@test.de
Subject: [*** SPAM ***]-----17:50
X-PHP-Originating-Script: 1664197:test2.php
From: Blacki<support@blacki.in>
Reply-To: <test@test.de>
MIME-Version: 1.0
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit
Message-ID: <1390323717 support@blacki.in>
X-Mailer: PHP v5.3.28
Date: Tue, 21 Jan 2014 18:01:59 +0100 (CET)
 
Hi DerEisige,

schickst du bitte eine neue Mail an meine Adresse? Die Kurz-Codes im Spam-Report sind nicht gerade aussagekräftig, was schief läuft.

// Edit: Hab das Script gefunden und mir selbst ne Mail geschickt. Hier die akutelle Wertung:
Code:
X-Spam-Report: 
	*  1.6 HTML_IMAGE_ONLY_12 BODY: HTML: images with 800-1200 bytes of words
	*  0.0 HTML_MESSAGE BODY: HTML included in message
	*  1.1 MIME_HTML_ONLY BODY: Message only has text/html MIME parts
	* -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no
	*      trust
	*      [91.198.169.19 listed in list.dnswl.org]
	*  1.2 INVALID_MSGID Message-Id is not valid, according to RFC 2822
	*  1.4 MISSING_DATE Missing Date: header
	*  2.5 TO_NO_BRKTS_FROM_MSSP Multiple formatting errors
	*  1.1 FROM_MISSP_REPLYTO From misspaced, has Reply-To
	*  0.0 T_REMOTE_IMAGE Message contains an external image

Hier mal eine Liste mit Änderungen die ich machen würde:
1. Die Message-ID darf keine Leerzeichen enthalten. Wird normal auch vom Server generiert, keine Ahnung warum du das manuell machen musst. (+ 1.2)
2. Der "Date:" Header fehlt. (+ 1.4)
3. Dein "Reply-To:" ist das gleiche wie der Empfänger (+ 1.1)
4. Deine Mail besteht rein aus HTML und hat keinen alternativen text/plain Part (+ 1.1)

@bofh: Bei einem OpenRelay hätte er keinen Eintrag in einer Whitelist (RCVD_IN_DNSWL_NONE), sondern eher einige Einträge in Blacklists.

Grüße,
BK
 
Zuletzt bearbeitet:
oke habe noch mal eine verschickt.

Punkt 1 bis 3 habe ich nun geändert aber was muss ich bei dem 4 Punkt tuen (alternativen text/plain Part)

PHP:
function eMail($empfanger, $betreff, $text, $typ){
    global $supportEmail, $serverEmail, $projekt ;
    
    if($typ == "1"){
        //support@blacki.in
        $absendeAdresse = $supportEmail; 
    }else{
        //noreply@blacki.in
        $absendeAdresse = $serverEmail;
    }

    $betreff 	= htmlspecialchars($betreff, ENT_QUOTES);
	$text 		= htmlspecialchars($text, ENT_QUOTES);
	
// Mail Header
    $header  = "From: ".$projekt."<".$absendeAdresse.">\r\n";
    $header .= "Reply-To: ".$projekt."<".$absendeAdresse.">\r\n";
    $header .= "Return-Path: ".$absendeAdresse."\r\n";
    $header .= "MIME-Version: 1.0\r\n";
    $header .= "Content-Type: text/html; charset=UTF-8\r\n";
    $header .= "Content-Transfer-Encoding: 8bit\r\n";
    $header .= "Date: ".date('r', $_SERVER['REQUEST_TIME'])."\r\n";
    $header .= "X-Mailer: PHP v".phpversion()."\r\n\r\n";
    
// Vorlage laden und für den Versand vorbereiten
    $mailText = file_get_contents( 'inc/vor.email.html' );
    
// Platzhalter mit den Benutzereingaben ersetzen
    $mailText = str_replace( '###BETREFF###',  $betreff , $mailText );
    $mailText = str_replace( '###NACHRICHT###', nl2br($text), $mailText );
    
// Email versenden
    if(@mail( $empfanger, $betreff, $mailText, $header, "-f ".$supportEmail)){
        return TRUE;
    }else{
        return FALSE;
    }
}
 
Hi,

das mit dem text/plain ist etwas schwieriger, hier müsstest du deine Mail neben HTML halt alternativ als nur Text schreiben.

Aber jetzt gehts, die Mail kommt durch den Spamfilter:
Code:
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on iris.wf-hosting.de
X-Spam-Level: *
X-Spam-Status: No, score=1.9 required=5.0 tests=HTML_IMAGE_ONLY_20,
	HTML_MESSAGE,MIME_HTML_ONLY,MISSING_MID,RCVD_IN_DNSWL_NONE autolearn=no
	version=3.3.2

Glückwunsch :)

// Edit: Bei dir wird anscheinend wirklich keine Message-ID generiert. Schreib die mal manuell rein, dann gibts noch nen Punkt weniger in der Score ;-)

PHP:
$header .= "Message-ID: <".mt_rand()."-".time()."_".$supportEmail.">\r\n";

Grüße,
BK
 
Zuletzt bearbeitet:
Hi,

naja, wenn dein SpamAssassin auf eine Score von >= 1.0 eingestellt ist, dann kommt da normal fast gar nichts durch. Bei mir gehts jetz:

Code:
X-Spam-Level: *
X-Spam-Status: No, score=1.8 required=5.0 tests=HTML_IMAGE_ONLY_20,
	HTML_MESSAGE,MIME_HTML_ONLY,RCVD_IN_DNSWL_NONE autolearn=no version=3.3.2

Ein Score von 1.0 ist vollkommen übertrieben. Standard ist 6.0 (wars bei mir zumindest), habs dann mal auf 5.0 angepasst.

Grüße,
BK
 
Hab auch einen meinen Spam filter auf 5 :) aber die Mail-Adresse wurde als Spam Adresse markiert, wegen den ganzen test Mails:rolleyes:, hab sie nun wider herausgenommen;).
Es klappt also endlich:):)

Auf jeden Fall DANKE euch allen.
 
Zurück