Probleme mit PHP mail() Funktion

Hallo, ich habe eine Frage:

Ich habe versucht an meine Googlemailadresse eine Email mit PHP-mail() zu senden, es kam nichts bei mir an.

Wenn ich hingegen eine Email an eine Trashmailadresse gesendet habe, hat es funktioniert.
Hat Google den SMTP-Server von Bplaced gesperrt?
(ich habe bplaced-pro)

<?php
$to = "email@googlemail.com";
		$subject = "Passwort zurücksetzen";

		$htmlContent = '
		    <html>
		    <head>
			<meta charset="utf-8" />
    			<meta name="viewport" content="width=device-width, initial-scale=1.0" />
			<title>Passwort zurück setzen</title>
		    </head>
		    <body>
			<h1>Passwort zurücksetzen</h1>
			<p>Um Ihr Passwort zurückzusetzen klicken sie auf <a href="">diesen Link</a>!</p>
		    </body>
		    </html>';

		
		$header[] = 'MIME-Version: 1.0';
		$header[] = 'Content-type: text/html; charset=UTF-8';
		$header[] = 'To: User <'.$to.'>';
		$header[] = 'From: Test<noreply@test.bplaced.net>';
		
		if(mail($to,$subject,$htmlContent,implode("\r\n", $header)))
		{
		    echo "Success";
		}

		else
		{
		    echo "Failed";
		}
?>

Hallo Jonny,

ich gehe mal davon aus dein PHP Script ist in Ordnung und es eher darum geht, dass Goockle Deine Nachrichten als Spam identifiziert. Ich würde mehr Kopfinfos (Mail Header) zur Verfügung stellen damit dies nicht so oft passiert.

Kopiere dir die benötigten Zeilen heraus.

<?php
// ePost versenden
function SendeEPost($E)
{
    if (!isset($E['EmpfängerAdresse'], $E['AbsenderAdresse'], $E['Betreff'], $E['Nachricht']))
    { throw new HelperException('Funktion: SendeEPost(); Erforderliche Parameter fehlen!'); }

    $Empfänger=empty($E['EmpfängerName']) ? $E['EmpfängerAdresse'] : '"' . mb_encode_mimeheader($E['EmpfängerName']) . '" <' . $E['EmpfängerAdresse'] . '>';
    $Absender=empty($E['AbsenderName']) ? $E['AbsenderAdresse'] : '"' . mb_encode_mimeheader($E['AbsenderName']) . '" <' . $E['AbsenderAdresse'] . '>';
    $Kopf=array(
        'MIME-Version: 1.0',
        'Content-Type: text/html; charset="UTF-8";',
        'Content-Transfer-Encoding: base64',
        'Date: ' . date('r', $_SERVER['REQUEST_TIME']),
        'Message-ID: <' . $_SERVER['REQUEST_TIME'] . md5($_SERVER['REQUEST_TIME']) . '@' . $_SERVER['SERVER_NAME'] . '>',
        'From: ' . $Absender,
        'Reply-To: ' . $Absender,
        'Return-Path: ' . $Absender,
        'X-Mailer: PHP v' . phpversion(),
        'X-Originating-IP: ' . $_SERVER['SERVER_ADDR'],
        'X-Sender-IP: ' . $_SERVER['REMOTE_ADDR']
        );
    return @mail($Empfänger, '=?UTF-8?B?' . base64_encode($E['Betreff']) . '?=', base64_encode($E['Nachricht']), implode(PHP_EOL, $Kopf));
}

if (count($Fehler)===0)
{
$ePostNachricht=array();
$ePostNachricht['AbsenderAdresse']='Draco@' . $_SERVER['HTTP_HOST'];
$ePostNachricht['AbsenderName']='Draco';
$ePostNachricht['EmpfängerAdresse']=$ePost;
$ePostNachricht['EmpfängerName']=$Benutzername;
$ePostNachricht['Betreff']=Textbaustein('$T_ePostBetreff');
$KennwortTeilmaskiert=MaskiereKennwort(PostWert('KennwortA'));
$ePostNachricht['Nachricht']='<!DOCTYPE html><html lang="de"><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"/><style type="text/css">body { font-family:\'Arial\', \'Verdana\'; font-size:14px; } span.Proportional { font-family:\'Consolas\', \'Courier New\'; }</style></head>' .
'<body>' . Textbaustein('$T_ePostText1') . ' <a href="'. DienstURL() . '">'. TextZuHTML(DienstURL()) . '</a> ' . Textbaustein('$T_ePostText2') . '<br/><br/>' .
Textbaustein('$T_Benutzername') . ': ' . TextZuHTML($Benutzername) . '<br/>' .
Textbaustein('$T_Kennwort') . ': ' . TextZuHTML($KennwortTeilmaskiert) . '<br/>' .
Textbaustein('$T_Aktivierungskode') . ': ' . '<br/><span class="Proportional">' . substr(TextZuHTML($Aktivierung), 0,  62) . '<br/>' . substr(TextZuHTML($Aktivierung), 62, 62) . '<br/>' . substr(TextZuHTML($Aktivierung), 124, 62) . '</span><br/><br/>' .
Textbaustein('$T_ePostGruß') . '<br/>' .
'</body></html>';
if (SendeEPost($ePostNachricht))
{ ?><span class="G"><?php echo Textbaustein('$T_ePostVersandErfolg'); ?></span><?php }
else
{ ?><span class="R"><?php echo Textbaustein('$T_ePostVersandFehler'); ?></span><?php }
unset ($ePostNachricht);
}
?>

In der SendeEPost($E) Funktion solltest Du vielleicht das @ Zeichen (Fehlerunterdrückung) in der letzten Zeile für Testzwecke entfernen.

Gruß Markus