Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.39 veröffentlicht (02.06.25)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
myBB versendet keine emails, suche kompetente hilfe
#1
Moin Moin,

ich habe folgende Problematik:

Ich habe einen vServer mit Ubuntu 8.04 LTS (Hardy) - 32 Bit minimal. auf diesem laufen unter anderem einige Projekte die mit dem CMS ilch (www.ilch.de) realisiert sind, diese projekte versenden auch emails über smtp. aber ich habe alle bisher erdenklichen beiträge im bezug auf email versand hier aus dem forum und auch via google etc. versucht.

Infos zur Umgebung:
vServer m. Ubuntu 8.04 lts 32 bit minimal
Div. Projekte mit ilch V. 11N umgesetzt die auch emails senden via smtp
smtp über gmx.de mit dem gleichen konto
myBB Version 1.4.11 (1411)
Theme: geändert (nicht manuell sondern importiert)
Plugins:
Fit on Page
MYPS
PHP and Themplate Conditionals
Simple Calender on Portal
Post on Registration
ragtek_eventcalendar
Specific forum banning

INFO: Der email Versand ist auch nicht in der reinen Grundinstallation möglich (getestet)

Hier meine myBB - php.php (alle Komentare entfernt)
PHP-Code:
<?php
if(!defined("IN_MYBB"))
{
die(
"Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");
}

class
PhpMail extends MailHandler
{
var
$additional_parameters = '';

function
send()
{
global
$lang, $mybb;

$this->sendmail = @ini_get('sendmail_path');
if(
$this->sendmail)
{
$this->headers = str_replace("\r\n", "\n", $this->headers);
$this->message = str_replace("\r\n", "\n", $this->message);
$this->delimiter = "\n";
}

$this->sendmail_from = @ini_get('sendmail_from');
if(
$this->sendmail_from != $mybb->settings['adminemail'])
{
@
ini_set("sendmail_from", $mybb->settings['adminemail']);
}

if(
ini_get('safe_mode') == 1 || strtolower(ini_get('safe_mode')) == 'on')
{
$sent = @mail($this->to, $this->subject, $this->message, trim($this->headers));
}
else
{
$sent = @mail($this->to, $this->subject, $this->message, trim($this->headers), $this->additional_parameters);
}
$function_used = 'mail()';

if(!
$sent)
{
$this->fatal_error("MyBB was unable to send the email using the PHP {$function_used} function.");
return
false;
}

return
true;
}
}
?>

Hier die myBB - smtp.php (alle komentare entfernt)
PHP-Code:
<?php
if(!defined("IN_MYBB"))
{
die(
"Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");
}

if(!
defined('MYBB_SSL'))
{
define('MYBB_SSL', 1);
}

if(!
defined('MYBB_TLS'))
{
define('MYBB_TLS', 2);
}

class
SmtpMail extends MailHandler
{
var
$connection;

var
$username = '';

var
$password = '';

var
$helo = 'localhost';

var
$authenticated = false;

var
$timeout = 5;

var
$status = 0;

var
$port = 25;

var
$secure_port = 465;

var
$host = '';

var
$data = '';

var
$code = 0;

var
$last_error = '';

var
$keep_alive = false;

function
SmtpMail()
{
global
$mybb;

$this->__construct();
}

function
__construct()
{
global
$mybb;

$protocol = '';
switch(
$mybb->settings['secure_smtp'])
{
case
MYBB_SSL:
$protocol = 'ssl://';
break;
case
MYBB_TLS:
$protocol = 'tls://';
break;
}

if(empty(
$mybb->settings['smtp_host']))
{
$this->host = @ini_get('SMTP');
}
else
{
$this->host = $mybb->settings['smtp_host'];
}

$this->helo = $this->host;

$this->host = $protocol . $this->host;

if(empty(
$mybb->settings['smtp_port']) && !empty($protocol) && !@ini_get('smtp_port'))
{
$this->port = $this->secure_port;
}
else if(empty(
$mybb->settings['smtp_port']) && @ini_get('smtp_port'))
{
$this->port = @ini_get('smtp_port');
}
else if(!empty(
$mybb->settings['smtp_port']))
{
$this->port = $mybb->settings['smtp_port'];
}

$this->password = $mybb->settings['smtp_pass'];
$this->username = $mybb->settings['smtp_user'];
}

function
send()
{
global
$lang, $mybb;

if(!
$this->connected())
{
$this->connect();
}

if(
$this->connected())
{
if(!
$this->send_data('MAIL FROM:<'.$this->from.'>', '250'))
{
$this->fatal_error("The mail server does not understand the MAIL FROM command. Reason: ".$this->get_error());
return
false;
}

$emails = explode(',', $this->to);
foreach(
$emails as $to)
{
$to = trim($to);
if(!
$this->send_data('RCPT TO:<'.$to.'>', '250'))
{
$this->fatal_error("The mail server does not understand the RCPT TO command. Reason: ".$this->get_error());
return
false;
}
}

if(
$this->send_data('DATA', '354'))
{
$this->send_data('Date: ' . gmdate('r'));
$this->send_data('To: ' . $this->to);

$this->send_data('Subject: ' . $this->subject);

// Only send additional headers if we've got any
if(trim($this->headers))
{
$this->send_data(trim($this->headers));
}

$this->send_data("");

$this->message = str_replace("\n.", "\n..", $this->message);
$this->send_data($this->message);
}
else
{
$this->fatal_error("The mail server did not understand the DATA command");
return
false;
}

$this->send_data('.', '250');

if(!
$this->keep_alive)
{
$this->close();
}
return
true;
}
else
{
return
false;
}
}

function
connect()
{
global
$lang, $mybb;

$this->connection = @fsockopen($this->host, $this->port, $error_number, $error_string, $this->timeout);

if(
function_exists('stream_set_timeout') && DIRECTORY_SEPARATOR != '\\')
{
@
stream_set_timeout($this->connection, $this->timeout, 0);
}

if(
is_resource($this->connection))
{
$this->status = 1;
$this->get_data();
if(!
$this->check_status('220'))
{
$this->fatal_error("The mail server is not ready, it did not respond with a 220 status message.");
return
false;
}

if(!empty(
$this->username) && !empty($this->password))
{
$data = $this->send_data('EHLO ' . $this->helo, '250');
if(!
$data)
{
$this->fatal_error("The server did not understand the EHLO command");
return
false;
}
preg_match("#250-AUTH( |=)(.+)$#mi", $data, $matches);
if(!
$this->auth($matches[2]))
{
$this->fatal_error("MyBB was unable to authenticate you against the SMTP server");
return
false;
}
}
else
{
if(!
$this->send_data('HELO ' . $this->helo, '250'))
{
$this->fatal_error("The server did not understand the HELO command");
return
false;
}
}
return
true;
}
else
{
$this->fatal_error("Unable to connect to the mail server with the given details.<br /><br />{$error_number}: {$error_string}");
return
false;
}
}

function
auth($auth_methods)
{
global
$lang, $mybb;

$auth_methods = explode(" ", $auth_methods);

if(
in_array("LOGIN", $auth_methods))
{
if(!
$this->send_data("AUTH LOGIN", 334))
{
if(
$this->code == 503)
{
return
true;
}
$this->fatal_error("The SMTP server did not respond correctly to the AUTH LOGIN command");
return
false;
}

if(!
$this->send_data(base64_encode($this->username), '334'))
{
$this->fatal_error("The SMTP server rejected the supplied SMTP username. Reason: ".$this->get_error());
return
false;
}

if(!
$this->send_data(base64_encode($this->password), '235'))
{
$this->fatal_error("The SMTP server rejected the supplied SMTP password. Reason: ".$this->get_error());
return
false;
}
}
else if(
in_array("PLAIN", $auth_methods))
{
if(!
$this->send_data("AUTH PLAIN", '334'))
{
if(
$this->code == 503)
{
return
true;
}
$this->fatal_error("The SMTP server did not respond correctly to the AUTH PLAIN command");
return
false;
}
$auth = base64_encode(chr(0).$this->username.chr(0).$this->password);
if(!
$this->send_data($auth, 235))
{
$this->fatal_error("The SMTP server rejected the supplied login username and password. Reason: ".$this->get_error());
return
false;
}
}
else
{
$this->fatal_error("The SMTP server does not support any of the AUTH methods that MyBB supports");
return
false;
}

return
true;
}

function
get_data()
{
$string = '';

while(((
$line = fgets($this->connection, 515)) !== false))
{
$string .= $line;
if(
substr($line, 3, 1) == ' ')
{
break;
}
}
$this->data = $string;
$this->code = substr(trim($this->data), 0, 3);
return
$string;
}

function
connected()
{
if(
$this->status == 1)
{
return
true;
}
return
false;
}

function
send_data($data, $status_num = false)
{
if(
$this->connected())
{
if(
fwrite($this->connection, $data."\r\n"))
{
if(
$status_num != false)
{
$rec = $this->get_data();
if(
$this->check_status($status_num))
{
return
$rec;
}
else
{
$this->set_error($rec);
return
false;
}
}
return
true;
}
else
{
$this->fatal_error("Unable to send the data to the SMTP server");
return
false;
}
}
return
false;
}

function
check_status($status_num)
{
if(
$this->code == $status_num)
{
return
$this->data;
}
else
{
return
false;
}
}

function
close()
{
if(
$this->status == 1)
{
$this->send_data('QUIT');
fclose($this->connection);
$this->status = 0;
}
}

function
get_error()
{
if(!
$this->last_error)
{
$this->last_error = "N/A";
}

return
$this->last_error;
}

function
set_error($error)
{
$this->last_error = $error;
}
}
?>

Hier noch die ilch - smtp.php (dieses CMS kann mails versenden)
PHP-Code:
<?php
# Copyright by Manuel
# Support www.ilch.de
defined ('main') or die ( 'no direct access' );

function
server_parse($socket, $response, $line = __LINE__)
{
$server_response = '';
while (
substr($server_response, 3, 1) != ' ')
{
if (!(
$server_response = fgets($socket, 256)))
{
echo
'Couldn\'t get mail server response codes<br />';
}
}

if (!(
substr($server_response, 0, 3) == $response))
{
echo
"Ran into problems sending Mail. Response: $server_response<br />";
}
}

function
smtpmail($mail_to, $subject, $message, $headers = '')
{
global
$allgAr;
$smtp_host = $allgAr['mail_smtp_host'];
$smtp_username = $allgAr['mail_smtp_login'];
require_once(
'include/includes/class/AzDGCrypt.class.inc.php');
$cr64 = new AzDGCrypt(DBDATE.DBUSER.DBPREF);
$smtp_password = $cr64->decrypt($allgAr['mail_smtp_password']);

$absender = $allgAr['mail_smtp_email'];

$message = preg_replace("#(?<!\r)\n#si", "\r\n", $message);
if (
$headers != '')
{
if (
is_array($headers))
{
if (
sizeof($headers) > 1)
{
$headers = join("\n", $headers);
}
else
{
$headers = $headers[0];
}
}
$headers = chop($headers);
$headers = preg_replace('#(?<!\r)\n#si', "\r\n", $headers);
$header_array = explode("\r\n", $headers);
@
reset($header_array);

$headers = '';
while(list(,
$header) = each($header_array))
{
if (
preg_match('#^cc:#si', $header))
{
$cc = preg_replace('#^cc:(.*)#si', '\1', $header);
}
else if (
preg_match('#^bcc:#si', $header))
{
$bcc = preg_replace('#^bcc:(.*)#si', '\1', $header);
$header = '';
}
$headers .= ($header != '') ? $header . "\r\n" : '';
}

$headers = chop($headers);
$cc = explode(', ', $cc);
$bcc = explode(', ', $bcc);
}

if (
trim($subject) == '')
{
echo
'No email Subject specified<br />';
}

if (
trim($message) == '')
{
echo
'Email message was blank<br />';
}

if( !
$socket = @fsockopen($smtp_host, 25, $errno, $errstr, 20) )
{
echo
"Could not connect to smtp host : $errno : $errstr<br />";
}

server_parse($socket, "220", __LINE__);

if( !empty(
$smtp_username) && !empty($smtp_password) )
{
fputs($socket, "HELO " . $smtp_host . "\r\n");
server_parse($socket, "250", __LINE__);

fputs($socket, "AUTH LOGIN\r\n");
server_parse($socket, "334", __LINE__);

fputs($socket, base64_encode($smtp_username) . "\r\n");
server_parse($socket, "334", __LINE__);

fputs($socket, base64_encode($smtp_password) . "\r\n");
server_parse($socket, "235", __LINE__);
}
else
{
fputs($socket, "HELO " . $smtp_host . "\r\n");
server_parse($socket, "250", __LINE__);
}

fputs($socket, "MAIL FROM: <" . $absender . ">\r\n");
server_parse($socket, "250", __LINE__);

$to_header = '';

$mail_to = (trim($mail_to) == '') ? 'Undisclosed-recipients:;' : trim($mail_to);
if (
preg_match('#[^ ]+\@[^ ]+#', $mail_to))
{
fputs($socket, "RCPT TO: <$mail_to>\r\n");
server_parse($socket, "250", __LINE__);
}

@
reset($bcc);
if (isset(
$bcc))
{
while(list(,
$bcc_address) = each($bcc))
{
$bcc_address = trim($bcc_address);
if (
preg_match('#[^ ]+\@[^ ]+#', $bcc_address))
{
fputs($socket, "RCPT TO: <$bcc_address>\r\n");
server_parse($socket, "250", __LINE__);
}
}
}

@
reset($cc);
if (isset(
$cc))
{
while(list(,
$cc_address) = each($cc))
{
$cc_address = trim($cc_address);
if (
preg_match('#[^ ]+\@[^ ]+#', $cc_address))
{
fputs($socket, "RCPT TO: <$cc_address>\r\n");
server_parse($socket, "250", __LINE__);
}
}
}

fputs($socket, "DATA\r\n");

server_parse($socket, "354", __LINE__);

fputs($socket, "Subject: $subject\r\n");

fputs($socket, "To: $mail_to\r\n");

fputs($socket, "$headers\r\n\r\n");

fputs($socket, "$message\r\n");

fputs($socket, ".\r\n");
server_parse($socket, "250", __LINE__);

fputs($socket, "QUIT\r\n");
fclose($socket);

return
true;
}
?>

Ich Sende meine php.php und die smtp.php aus dem mailhandlers Verzeichnis als Anhang mit.


.php   php.php (Größe: 1,85 KB / Downloads: 0)

.php   smtp.php (Größe: 9,62 KB / Downloads: 0)

Link zu dem Forum: http://deine.bos-freunde.de (fast vergessen anzugeben ^^)

MfG DieBulldogge
#2
Was steht in den E-Mail-Logs im ACP?
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
#3
Ich hab einen auszug aus dem Log als Screen angehängt. sind halt verschiedene Angaben die durch verschiedene Test´s entstanden sind

   

mfg Die Bulldogge
#4
Das sagt eindeutig, dass die Daten für SMTP falsch sind, d.h. der SMTP-Benutzer entspricht nicht der E-Mail des Forums.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
#5
magst du mir dann bitte einmal sagen was ich genau in welchen feld in welcher form eingetragen werden muss... hab meines wissens nach alle varianten durch getstet (mit-f, ohne) mit einem Acc von yahoo.de, gmx.de und web.de und eine manuelle freischaltung steht leider außer frage für das geplante projekt.
also mit dem besagten ilch cms geht es über die gmx-adresse ohne "probleme" (landet leider als spam beim empfänger).

mfg Die Bulldogge
#6
Da die Meldungen ständig anders sind und du die eingetragenen Daten nicht preisgibst, kann ich dir nicht helfen. Am MyBB scheint es nicht zu liegen.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
#7
in wie fern daten nicht preis geben ??? erwartest du jetzt das ich dir die daten zu meinem mailprovider inkl. benutzername und kennwort gebe oder wie soll ich das verstehen ? teilweise sind 3 fehlermeldungen von einem einzigen sendeversuch ^^
#8
Das Passwort natürlich nicht, aber wie sollen wir dir sonst helfen?
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
#9
email provider: gmx.de
smtp host: mail.gmx.net
ports:
SSL over SMTP" (SSMTP) über Port 465
oder StartTLS über Port 25
smtp benutzer: sven-msn@gmx.de
Kennwort: ************
#10
Was hast du im ACP angeben?
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
Question Bestätigungsmails werden einfach nicht versendet! X-Tomixxx 26 8.144 02.05.2010, 12:08
Letzter Beitrag: Michael Malin
  System versendet keine Mails mehr Chuck 12 5.215 30.03.2010, 20:00
Letzter Beitrag: RMB Hans
  MyBB Versendet keine Email an Hotmail. 12dc12 7 4.045 29.03.2010, 13:51
Letzter Beitrag: StefanT
  Forum versendet keine Mails an Hotmail. 12dc12 10 4.220 27.03.2010, 13:58
Letzter Beitrag: 12dc12