Mailversand via admidio
-
- Beiträge: 50
- Registriert: 28. Jun 2009, 22:57
Re: Mailversand via admidio
Hat die Datei auch die entsprechenden Rechte bekommen ?
ja, CHMODE 777
Ist Admidio in einem Unterordner von deinem Hauptordner ?
siehe anhang
ja, CHMODE 777
Ist Admidio in einem Unterordner von deinem Hauptordner ?
siehe anhang
- Dateianhänge
-
- 1.jpg (54.83 KiB) 13546 mal betrachtet
Re: Mailversand via admidio
hmm, dann füge mal probeweise in deiner config.php folgende Zeile hinzu:.
Jetzt sollte sich die errorlog.txt schon füllen, wenn du normale Admidio-Seiten aufrufst.
Ist das bei dir der Fall?
Code: Alles auswählen
$gDebug = 1;
Jetzt sollte sich die errorlog.txt schon füllen, wenn du normale Admidio-Seiten aufrufst.
Ist das bei dir der Fall?
-
- Beiträge: 50
- Registriert: 28. Jun 2009, 22:57
Re: Mailversand via admidio
Code: Alles auswählen
[26-Feb-2012 19:28:28] --------------------------------------------------------------------------------
/www/htdocs/w00ad8f3/admidio/adm_program/index.php
?
[26-Feb-2012 19:28:28] SELECT prf_name, prf_value
FROM adm_preferences, adm_organizations
WHERE org_shortname = 'GJR'
AND prf_org_id = org_id
AND prf_name IN ('forumVersion','enable_forum_interface')
[26-Feb-2012 19:28:28] SHOW COLUMNS FROM adm_sessions
[26-Feb-2012 19:28:28] DELETE FROM adm_sessions
WHERE ses_timestamp < '2012.02.26 18:58:28'
[26-Feb-2012 19:28:28] SHOW COLUMNS FROM adm_organizations
[26-Feb-2012 19:28:28] SELECT * FROM adm_organizations
WHERE org_shortname LIKE 'GJR'
[26-Feb-2012 19:28:28] SELECT * FROM adm_preferences
WHERE prf_org_id = 1
[26-Feb-2012 19:28:28] SELECT * FROM adm_categories, adm_user_fields
WHERE usf_cat_id = cat_id
AND ( cat_org_id IS NULL
OR cat_org_id = 1 )
ORDER BY cat_sequence ASC, usf_sequence ASC
[26-Feb-2012 19:28:28] SHOW COLUMNS FROM adm_user_fields
[26-Feb-2012 19:28:28] SHOW COLUMNS FROM adm_users
[26-Feb-2012 19:28:28] INSERT INTO adm_sessions ( ses_org_id , ses_begin , ses_timestamp , ses_ip_address ) VALUES ( 1 , '2012-02-26 19:28:28' , '2012-02-26 19:28:28' , '217.82.36.192' )
[26-Feb-2012 19:28:28] PHP Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w00ad8f3/admidio/config.php:1) in /www/htdocs/w00ad8f3/admidio/adm_program/system/overall_header.php on line 54
[26-Feb-2012 19:28:28] SHOW COLUMNS FROM adm_roles
[26-Feb-2012 19:28:28] SELECT * FROM adm_roles , adm_categories
WHERE rol_name LIKE 'Webmaster' AND rol_cat_id = cat_id
AND ( cat_org_id = 1
OR cat_org_id IS NULL )
Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w00ad8f3/admidio/config.php:1) in /www/htdocs/w00ad8f3/admidio/adm_program/system/overall_header.php on line 54
Re: Mailversand via admidio
Ok, dann scheint das mit dem errorlog zu funktionieren, nur leider wird wohl nichts eingetragen, wenn du an eine Rolle eine E-Mail versendest.
Zu dem Fehler, schau mal hier.
Du kannst jetzt die Zeile mit $gDebug wieder entfernen. Versuch es doch noch einmal mit dem Versand einer E-Mail an eine Rolle, wird was in der Datei hinzugefügt ?
Zu dem Fehler, schau mal hier.
Du kannst jetzt die Zeile mit $gDebug wieder entfernen. Versuch es doch noch einmal mit dem Versand einer E-Mail an eine Rolle, wird was in der Datei hinzugefügt ?
-
- Beiträge: 50
- Registriert: 28. Jun 2009, 22:57
Re: Mailversand via admidio
habe $gDebug wieder entfernt.
www.jugend-ahrensboek.de/admidio/
trotzdem noch folgende fehlermeldung oben in admidio:
Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w00ad8f3/admidio/config.php:1) in /www/htdocs/w00ad8f3/admidio/adm_program/system/overall_header.php on line 54
einloggen funktioniert nun auch nicht mehr.
Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w00ad8f3/admidio/config.php:1) in /www/htdocs/w00ad8f3/admidio/adm_program/system/login_check.php on line 147
Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w00ad8f3/admidio/config.php:1) in /www/htdocs/w00ad8f3/admidio/adm_program/system/login_check.php on line 150
Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w00ad8f3/admidio/config.php:1) in /www/htdocs/w00ad8f3/admidio/adm_program/system/login_check.php on line 188
www.jugend-ahrensboek.de/admidio/
trotzdem noch folgende fehlermeldung oben in admidio:
Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w00ad8f3/admidio/config.php:1) in /www/htdocs/w00ad8f3/admidio/adm_program/system/overall_header.php on line 54
einloggen funktioniert nun auch nicht mehr.
Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w00ad8f3/admidio/config.php:1) in /www/htdocs/w00ad8f3/admidio/adm_program/system/login_check.php on line 147
Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w00ad8f3/admidio/config.php:1) in /www/htdocs/w00ad8f3/admidio/adm_program/system/login_check.php on line 150
Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w00ad8f3/admidio/config.php:1) in /www/htdocs/w00ad8f3/admidio/adm_program/system/login_check.php on line 188
-
- Beiträge: 50
- Registriert: 28. Jun 2009, 22:57
Re: Mailversand via admidio
Tritt diese Meldung auf (einzelne Angaben in der Meldung können abweichen), so wurde die Datei nicht richtig als UTF8 Datei gespeichert. Admidio erwartet alle Dateien in der UTF-8 Kodierung ohne BOM. Die Standardeinstellung bei den meisten Editoren ist UTF-8 mit BOM. Da allerdings PHP mit dem BOM nicht zurechtkommt und die oben genannte Fehlermeldung auswirft, muss man dies im Editor so einstellen, dass UTF-8 ohne BOM gespeichert wird.
dieses problem habe ich gelöst.
so wieder eine rollenmail probiert zu senden, wieder gleiches fehler-ergebnis.
und der fehler wird nicht in der errorlog-txt-datei angezeigt:
http://jugend-ahrensboek.de/errorlog/errorlog.txt
dieses problem habe ich gelöst.
so wieder eine rollenmail probiert zu senden, wieder gleiches fehler-ergebnis.
und der fehler wird nicht in der errorlog-txt-datei angezeigt:
http://jugend-ahrensboek.de/errorlog/errorlog.txt
Re: Mailversand via admidio
Ok, dann versuchen wir mal weiter zu schauen, wo das Problem liegt.
Geh mal bitte in folgende Datei adm_program > system > classes > email.php
und füge dort in Zeile 553 folgende Zeile ein
Jetzt gehe ich davon aus, dass bei dir wahrscheinlich eine positive Meldung zurückkommt oder ?
Wir haben jetzt die Funktion "Kopie an Sender" abgeklemmt. Wahrscheinlich steckt hier bei dir das Problem.
Gruß
Fasse
Geh mal bitte in folgende Datei adm_program > system > classes > email.php
und füge dort in Zeile 553 folgende Zeile ein
Code: Alles auswählen
return true;
Wir haben jetzt die Funktion "Kopie an Sender" abgeklemmt. Wahrscheinlich steckt hier bei dir das Problem.
Gruß
Fasse
-
- Beiträge: 50
- Registriert: 28. Jun 2009, 22:57
Re: Mailversand via admidio
Hallo Fasse,
leider wieder unsere bekannte Fehlermeldung:
Hinweis
Die E-Mail konnte nicht an die Rolle Webmaster gesendet werden.
Zurück Zurück
Außerdem ist noch eine TXT-Datei aufgegangen:
DSP9331:
-> Mail wurde an Empfänger verschickt
-> Absender erhielt keine e-mail - Kopie
Gruß
Matze
leider wieder unsere bekannte Fehlermeldung:
Hinweis
Die E-Mail konnte nicht an die Rolle Webmaster gesendet werden.
Zurück Zurück
Außerdem ist noch eine TXT-Datei aufgegangen:
DSP9331:
Code: Alles auswählen
<?php
/******************************************************************************
* Create and send a text or html email with attachments
*
* Copyright : (c) 2004 - 2012 The Admidio Team
* Homepage : http://www.admidio.org
* License : GNU Public License 2 http://www.gnu.org/licenses/gpl-2.0.html
*
* Mit dieser Klasse kann ein Email-Objekt erstellt
* und anschliessend verschickt werden.
*
* Das Objekt wird erzeugt durch Aufruf des Konstruktors:
* Email()
*
* Nun wird der Absender gesetzt:
* setSender($address, $name='')
* Parameters: $address - Die Emailadresse
* $name - Der Name des Absenders (optional)
*
* Nun koennen in beliebiger Reihenfolge und Anzahl Adressaten (To,Cc,Bcc)
* der Mail hinzugefuegt werden:
* (optional und mehrfach aufrufbar, es muss jedoch mindestens
* ein Empfaenger mittels einer der drei Funktionen gesetzt werden)
*
* addRecipient($address, $name='')
* addCopy($address, $name='')
* addBlindCopy($address, $name='')
* Parameters: $address - Die Emailadresse
* $name - Der Name des Absenders (optional)
*
* Nun noch ein Subject setzen (optional):
* setSubject($subject)
* Parameters: $subject - Der Text des Betreffs
*
* Der Email einen Text geben:
* function setText($text. )
* Parameters: $text - Der Text der Mail
*
* Nun kann man ein Attachment hinzufuegen:
* (optional und mehrfach aufrufbar)
* function addAttachment($tmp_filename, $orig_filename = '', $file_type='application/octet-stream',
$file_disposition = 'attachment',$file_id = '')
* Parameters: $tmp_filename - Der Pfad und Name der Datei auf dem Server
* $orig_filename - Der Name der datei auf dem Rechner des Users
* $file_type - Den Contenttype der Datei. (optional)
* $file_disposition - Damit kann mann festlegen ob mann das Attachment als Anhang (=> 'attachment')
* oder in der Mail verwendent (=> 'inline')
* $file_id - Damit kann mann die id jeden Attachments festlegen
*
* Bei Bedarf kann man sich eine Kopie der Mail zuschicken lassen (optional):
* setCopyToSenderFlag()
*
* Sollen in der Kopie zusaetzlich noch alle Empfaenger aufgelistet werden,
* muss folgende Funktion auch noch aufgerufen werden (optional):
* function setListRecipientsFlag()
*
* Methode gibt die maximale Groesse der Anhaenge zurueck
* size_unit : 'b' = byte; 'kb' = kilobyte; 'mb' = megabyte
* getMaxAttachementSize($size_unit = 'kb')
*
* Soll die Nachricht als HTML Code interpretiert und versendet werden,
* muss folgende Funktion auch noch aufgerufen werden (optional):
* function sendDataAsHtml()
*
* Am Ende muss die Mail natuerlich noch gesendet werden:
* function sendEmail();
*
*****************************************************************************/
class Email
{
// constructor of class
public function __construct()
{
global $gPreferences;
// Important: MimeVersion should be first element of header
$this->headerOptions['MIME-Version'] = '1.0';
$this->headerOptions['Return-Path'] = $gPreferences['email_administrator'];
$this->headerOptions['Sender'] = $gPreferences['email_administrator'];
$this->mailBoundary = '--NextPart_AdmidioMailSystem_'. md5(uniqid(rand()));
$this->mailBoundaryRelated = $this->mailBoundary;
$this->copyToSender = false;
$this->listRecipients = false;
$this->sendAsHTML = false;
$this->lineBreak = "\r\n";
$this->text = ''; // content of text part
$this->htmlText = ''; // content of html part
$this->charset = $gPreferences['mail_character_encoding'];
//Jetzt wird noch der ContentType der Mail gesetzt.
//Dieser wird im Falle eines Attachments oder HTML spaeter ersetzt.
$this->headerOptions['Content-Type'] = 'text/plain; charset='.$this->charset;
//Hier werden noch mal alle Empfaenger der Mail reingeschrieben,
//fuer den Fall das eine Kopie der Mail angefordert wird...
$this->addresses = '';
}
// method adds sender to mail
public function setSender($address, $name='')
{
global $gPreferences;
$address = admStrToLower($address);
if(strlen($name) == 0)
{
$name = $address;
}
else
{
// Sender must be Ascii-US formated, so encode in MimeHeader
$name = admEncodeMimeheader(stripslashes($name));
}
if (strValidCharacters($address, 'email'))
{
//Falls so eingestellt soll die Mail von einer bestimmten Adresse aus versendet werden
if(strlen($gPreferences['mail_sendmail_address']) > 0) // && $address != $gPreferences['email_administrator'])
{
//hier wird die Absenderadresse gesetzt
$this->headerOptions['From'] = '"'. $name. '" <'. $gPreferences['mail_sendmail_address']. '>';
//wenn der Empfänger dann auf anworten klickt soll die natürlich an den wirklichen Absender gehen
//Der Absendername ist in Doppeltueddel gesetzt, damit auch Kommas im Namen kein Problem darstellen
$this->headerOptions['Reply-To'] = '"'. $name. '" <'. $address. '>';
}
//Im Normalfall wird aber versucht von der Adresse des schreibenden aus zu schicken
else
{
//Der Absendername ist in Doppeltueddel gesetzt, damit auch Kommas im Namen kein Problem darstellen
$this->headerOptions['From'] = '"'. $name. '" <'. $address. '>';
}
return true;
}
return false;
}
// write a short text with sender informations in text of email
public function setSenderInText($senderName, $senderEmail, $roleName)
{
global $gL10n, $gValidLogin, $gCurrentOrganization;
if($this->sendAsHTML)
{
$senderCode = '<a href="mailto:'.$senderEmail.'">'.$senderName.'</a>';
}
else
{
$senderCode = $senderName.' ('.$senderEmail.')';
}
if(strlen($roleName) > 0)
{
$senderText = $gL10n->get('MAI_EMAIL_SEND_TO_ROLE', $senderCode, $gCurrentOrganization->getValue('org_homepage'), $roleName);
}
else
{
$senderText = $gL10n->get('MAI_EMAIL_SEND_TO_USER', $senderCode, $gCurrentOrganization->getValue('org_homepage'));
}
if($gValidLogin == false)
{
$senderText = $senderText."\r\n".$gL10n->get('MAI_SENDER_NOT_LOGGED_IN');
}
$senderText = $senderText."\r\n".
'*****************************************************************************************************************************'.
"\r\n"."\r\n";
$this->text = $this->text.$senderText;
$this->htmlText = $this->htmlText.nl2br($senderText);
}
// set subject in email
public function setSubject($subject)
{
if (strlen($subject) > 0)
{
$this->headerOptions['Subject'] = admEncodeMimeheader(stripslashes($subject));
return true;
}
return false;
}
// method adds main recipients to mail
public function addRecipient($address, $name='')
{
$address = admStrToLower($address);
// Recipient must be Ascii-US formated, so encode in MimeHeader
$asciiName = admEncodeMimeheader(stripslashes($name));
if (strValidCharacters($address, 'email'))
{
if (!isset($this->headerOptions['To']))
{
$this->headerOptions['To'] = '"'. $asciiName. '" <'. $address. '>';
}
else
{
$this->headerOptions['To'] = $this->headerOptions['To']. ', "'. $asciiName. '" <'. $address. '>';
}
$this->addresses = $this->addresses. $name. ', '. $address. "\r\n";
return true;
}
return false;
}
// method adds CC recipients to mail
public function addCopy($address, $name='')
{
$address = admStrToLower($address);
// Copy must be Ascii-US formated, so encode in MimeHeader
$asciiName = admEncodeMimeheader(stripslashes($name));
if (strValidCharacters($address, 'email'))
{
if (!isset($this->headerOptions['Cc']))
{
$this->headerOptions['Cc'] = '"'. $asciiName. '" <'. $address. '>';
}
else
{
$this->headerOptions['Cc'] = $this->headerOptions['Cc']. ', "'. $asciiName. '" <'. $address. '>';
}
$this->addresses = $this->addresses. $name. ', '. $address. "\r\n";
return true;
}
return false;
}
// method adds BCC recipients to mail
public function addBlindCopy($address, $name='')
{
$address = admStrToLower($address);
// Blindcopy must be Ascii-US formated, so encode in MimeHeader
$asciiName = admEncodeMimeheader(stripslashes($name));
if (strValidCharacters($address, 'email'))
{
$this->bccArray[] = '"'. $asciiName. '" <'. $address. '>';
$this->addresses = $this->addresses. $name. ', '.$address."\r\n";
return true;
}
return false;
}
// Funktion um den Nachrichtentext an die Mail uebergeben
public function setText($text)
{
//Erst mal die Zeilenumbrueche innerhalb des Mailtextes umwandeln in einfache Umbrueche
// statt \r und \r\n nur noch \n
$text = str_replace('\r\n', '\n', $text);
$text = str_replace('\r', '\n', $text);
$this->text = $this->text.$text;
$this->htmlText = $this->htmlText.$text;
}
// method adds an attachement to the mail
// tempFilename : filename of the local server path where admidio is installed
// originalFilename : original filename that will be shown in the email
// fileType : content type of the file in the email
// fileDisposition : how the file should be shown in email : 'attachement' or 'inline'
// fileId : a unique id for the file, so that it could be identified in the email
public function addAttachment($tempFilename, $originalFilename = '', $fileType='application/octet-stream' ,
$fileDisposition = 'attachment',$fileId = '')
{
$this->attachments[] = array(
'orig_filename' => $originalFilename,
'tmp_filename' => $tempFilename,
'file_type' => $fileType,
'file_disposition' => $fileDisposition,
'file_id' => $fileId);
if($this->sendAsHTML == false)
{
// HTML-Mails mit Anhang behalten ihren Type, Textmails bekommen einen Speziellen
// text mail with attachement should get a new content type, html mail get that later
$this->headerOptions['Content-Type'] = "multipart/mixed;\n\tboundary=\"". $this->mailBoundary. '"';
}
}
// Funktion um das Flag zu setzen, dass eine Kopie verschickt werden soll...
public function setCopyToSenderFlag()
{
$this->copyToSender = true;
}
// Funktion um das Flag zu setzen, dass in der Kopie alle Empfaenger der Mail aufgelistet werden
public function setListRecipientsFlag()
{
$this->listRecipients = true;
}
// method change email header so that client will interpret mail as html mail
public function sendDataAsHtml()
{
$this->sendAsHTML = true;
$this->lineBreak = '<br />';
$this->headerOptions['Content-Type'] = "multipart/alternative;\n\tboundary=\"". $this->mailBoundary. '"';
}
// Funktion um den Header aufzubereiten
private function prepareHeader()
{
$this->mail_properties = '';
foreach ($this->headerOptions as $key => $value)
{
$this->mail_properties = $this->mail_properties. $key. ': '. $value. "\n";
}
//Den letzten Zeilenumbruch im Header entsorgen.
$this->mail_properties = substr($this->mail_properties,0,strlen($this->mail_properties)-1);
}
// Methode gibt die maximale Groesse der Anhaenge zurueck
// size_unit : 'b' = byte; 'kb' = kilobyte; 'mb' = megabyte
public static function getMaxAttachementSize($size_unit = 'kb')
{
global $gPreferences;
if(round(admFuncMaxUploadSize()/pow(1024, 1), 1) < $gPreferences['max_email_attachment_size'])
{
$attachment_size = round(admFuncMaxUploadSize()/pow(1024, 1), 2);
}
else
{
$attachment_size = $gPreferences['max_email_attachment_size'];
}
if($size_unit == 'mb')
{
$attachment_size = $attachment_size / 1024;
}
elseif($size_unit == 'b')
{
$attachment_size = $attachment_size * 1024;
}
return round($attachment_size, 2);
}
// Funktion um den Body zusammenzusetzen
private function prepareBody()
{
$this->mail_body = '';
// bei multipart-Mails muss auch der Content-Type fuer Text explizit gesetzt werden
if($this->sendAsHTML || isset($this->attachments))
{
$this->mail_body = $this->mail_body."--". $this->mailBoundary.
"\nContent-Type: text/plain; charset=".$this->charset."\nContent-Transfer-Encoding: 7bit\n\n";
}
// nun den Mailtext als Text-Format hinzufuegen
$this->mail_body = $this->mail_body. strip_tags($this->text). "\n\n";
// if html mail then add html text to email
if($this->sendAsHTML)
{
// html mail with embedded pictures get own boundary
if(isset($this->attachments))
{
$this->mailBoundaryRelated = '--NextPart_AdmidioMailSystem_'. md5(uniqid(rand()));
if($this->attachments[0]['file_disposition'] == 'inline')
{
// inline attachements should only be shown in html part and not as attachement
$this->mail_body = $this->mail_body. "--". $this->mailBoundary.
"\nContent-Type: multipart/related;\n\tboundary=\"". $this->mailBoundaryRelated. "\"\n\n";
}
else
{
// set content type 'mixed' for html attachement if they should not be shown inline
$this->mail_body = $this->mail_body. "--". $this->mailBoundary.
"\nContent-Type: multipart/mixed;\n\tboundary=\"". $this->mailBoundaryRelated. "\"\n\n";
}
}
$this->mail_body = $this->mail_body. "--". $this->mailBoundaryRelated.
"\nContent-Type: text/html; charset=".$this->charset."\nContent-Transfer-Encoding: 7bit\n\n";
$this->mail_body = $this->mail_body. $this->htmlText."\n\n";
}
// Jetzt die Attachments hinzufuegen...
if (isset ($this->attachments))
{
for ($i = 0; $i < count($this->attachments); $i++)
{
$thefile = '';
$fileContent = '';
$this->mail_body = $this->mail_body. "--". $this->mailBoundaryRelated. "\n";
$this->mail_body = $this->mail_body. "Content-Type: ". $this->attachments[$i]['file_type']. ";\n";
$this->mail_body = $this->mail_body. "\tname=\"". $this->attachments[$i]['orig_filename']. "\"\n";
$this->mail_body = $this->mail_body. "Content-Transfer-Encoding: base64\n";
if (!empty($this->attachments[$i]['file_disposition']))
{
$this->mail_body = $this->mail_body. "Content-Disposition: ".$this->attachments[$i]['file_disposition'].";\n";
}
else
{
$this->mail_body = $this->mail_body. "Content-Disposition: attachment;\n";
}
$this->mail_body = $this->mail_body. "\tfilename=\"". $this->attachments[$i]['orig_filename']. "\"\n";
if (!empty($this->attachments[$i]['file_id']))
{
$this->mail_body = $this->mail_body. "Content-ID: <".$this->attachments[$i]['file_id'].">\n\n";
}
// File oeffnen und base64 konvertieren
$return = '';
$data = '';
$thePart = '';
if ($fp = fopen($this->attachments[$i]['tmp_filename'], 'rb'))
{
while (!feof($fp))
{
$return .= fread($fp, 1024);
}
fclose($fp);
$data = base64_encode($return);
}
if (function_exists('chunk_split'))
{
$thePart .= chunk_split($data,76,"\n");
}
else
{
$theData = $data;
while (strlen($theData)>76)
{
$thePart.=substr($theData,0,76)."\n";
$theData=substr($theData,76);
}
$thePart .= $theData."\n";
}
$this->mail_body = $this->mail_body. "\n". $thePart. "\n\n";
}
// Das Ende der Mail mit der Boundary kennzeichnen...
if($this->mailBoundary != $this->mailBoundaryRelated)
{
$this->mail_body = $this->mail_body. '--'. $this->mailBoundaryRelated. "--\n\n";
}
$this->mail_body = $this->mail_body. '--'. $this->mailBoundary. '--';
}
// if character encoding is iso-8859-1 than decode our utf-8 string to iso-8859-1
if($this->charset == 'iso-8859-1')
{
utf8_decode($this->mail_body);
}
}
// Funktion um die Email endgueltig zu versenden...
public function sendEmail()
{
global $gPreferences, $gL10n;
// Wenn keine Absenderadresse gesetzt wurde, ist hier Ende im Gelaende...
if (!isset($this->headerOptions['From']))
{
return false;
}
// Wenn keine Empfaenger gesetzt wurden, ist hier auch Ende...
if (!isset($this->headerOptions['To']) and !isset($this->headerOptions['Cc']) and !isset($this->bccArray))
{
return false;
}
//Hier werden die Haupt-Mailempfaenger gesetzt und aus den HeaderOptions entfernt...
$recipient = '';
if (isset($this->headerOptions['To']))
{
$recipient = $this->headerOptions['To'];
unset($this->headerOptions['To']);
}
// Hier wird das MailSubject gesetzt und aus den HeaderOptions entfernt...
$subject = '';
if (isset($this->headerOptions['Subject']))
{
$subject = $this->headerOptions['Subject'];
unset($this->headerOptions['Subject']);
}
//Hier werden jetzt die BCC-Empfaenger im Header verewigt und die Mail dann abgeschickt.
//Da dies haeppchenweise geschehen soll, wird mit einer Schleife gearbeitet
$bccCounter = 0;
if (isset($this->bccArray))
{
foreach ($this->bccArray as $key => $value)
{
if (!isset($this->headerOptions['Bcc']))
{
$this->headerOptions['Bcc'] = $value;
}
else
{
$this->headerOptions['Bcc'] = $this->headerOptions['Bcc']. ', '. $value;
}
$bccCounter++;
//immer wenn die Anzahl der BCCs $gPreferences['mail_bcc_count'] (Standard: 50) erreicht hat
// oder aber das letzte Element des Arrays erreicht ist, wird die Mail versand.
if ($bccCounter == $gPreferences['mail_bcc_count'] || count($this->bccArray) == $key+1)
{
// Hier wird der Header fuer die Mail aufbereitet...
$this->prepareHeader();
// Hier wird der Body fuer die Mail aufbereitet...
$this->prepareBody();
// Mail wird jetzt versendet...
// das Versenden in UTF8 funktioniert noch nicht bei allen Mailclients (Outlook, GMX)
if (!mail($recipient, $subject, $this->mail_body, $this->mail_properties))
{
return false;
}
unset($this->headerOptions['Bcc']);
$bccCounter = 0;
}
}
}
else
{
//...und hier noch das ganze wenn es keine BCCs gibt!
// Hier wird der Header fuer die Mail aufbereitet...
$this->prepareHeader();
// Hier wird der Body fuer die Mail aufbereitet...
$this->prepareBody();
// Mail wird jetzt versendet...
// das Versenden in UTF8 funktioniert noch nicht bei allen Mailclients (Outlook, GMX)
if (!mail($recipient, $subject, $this->mail_body, $this->mail_properties))
// if (!mail(utf8_decode($recipient), utf8_decode($subject), $this->mail_body, utf8_decode($this->mail_properties)))
{
return false;
}
}
return true;
// Eventuell noch eine Kopie an den Absender verschicken:
if ($this->copyToSender)
{
$copyHeader = '*****************************************************************************************************************************'.
"\r\n"."\r\n";
$copyHeader = $gL10n->get('MAI_COPY_OF_YOUR_EMAIL').':'."\r\n".$copyHeader;
//Falls das listRecipientsFlag gesetzt ist werden in der Kopie
//die einzelnen Empfaenger aufgelistet:
if ($this->listRecipients)
{
$copyHeader = $this->addresses."\r\n".$copyHeader;
$copyHeader = $gL10n->get('MAI_MESSAGE_WENT_TO').':'."\r\n"."\r\n".$copyHeader;
}
$this->text = $copyHeader.$this->text;
$this->htmlText = nl2br($copyHeader).$this->htmlText;
unset($this->headerOptions['To']);
unset($this->headerOptions['Cc']);
unset($this->headerOptions['Bcc']);
// Header fuer die Kopie aufbereiten...
$this->prepareHeader();
// Body fuer die Kopie aufbereiten...
$this->prepareBody();
//Das Subject modifizieren
$subject = $gL10n->get('MAI_CARBON_COPY').': '. $subject;
//Empfänger
$mailto = $this->headerOptions['From'];
//Wenn gesonderte Versandadresse gesetzt ist die Antwortadresse verwenden
if($gPreferences['mail_sendmail_address'] != '' && $mailto != $gPreferences['email_administrator'])
{
$mailto = $this->headerOptions['Reply-To'];
}
// Kopie versenden an den originalen Absender...
// das Versenden in UTF8 funktioniert noch nicht bei allen Mailclients (Outlook, GMX)
if (!mail($mailto, $subject, $this->mail_body, $this->mail_properties))
{
return false;
}
}
return true;
}
}
?>
-> Absender erhielt keine e-mail - Kopie
Gruß
Matze
-
- Beiträge: 50
- Registriert: 28. Jun 2009, 22:57
Re: Mailversand via admidio
fasse ?!
Re: Mailversand via admidio
Hmm, kannst du mal eine neue Rolle machen und der nur 1 Benutzer zuordnen. ( evlt. eine 2. Email-Adresse von dir) und dieser Rolle dann eine Mail schicken.
Gruß
Fasse
Gruß
Fasse
-
- Beiträge: 50
- Registriert: 28. Jun 2009, 22:57
Re: Mailversand via admidio
Hallo Fasse,
gleiches Fehlerergebnis.
Gruß
Matze
gleiches Fehlerergebnis.
Gruß
Matze
Re: Mailversand via admidio
Hmm, mir gehen so ein bischen die Ideen aus ...
Kannst du mal einen Link zu deiner Seite posten oder per PM schicken.
Kannst du mal einen Link zu deiner Seite posten oder per PM schicken.
Re: Mailversand via admidio
Funktioniert der Mailversand auf beiden Seite nicht ?
Auf einer Seite finde ich keine Rolle an die ich schreiben kann. Bei der Anderen kannst du da noch mal unserer Originale email.php hinkopieren.
Gruß
Fasse
Auf einer Seite finde ich keine Rolle an die ich schreiben kann. Bei der Anderen kannst du da noch mal unserer Originale email.php hinkopieren.
Gruß
Fasse
-
- Beiträge: 50
- Registriert: 28. Jun 2009, 22:57
Re: Mailversand via admidio
Hi Fasse,
auf beiden Seiten:
-> Fehlermeldung: "e-mail an Rolle wurde nicht versendet ..."
-> Mail wurde an Empfänger verschickt
-> Absender erhielt keine e-mail - Kopie
Gruß
Matze
auf beiden Seiten:
-> Fehlermeldung: "e-mail an Rolle wurde nicht versendet ..."
-> Mail wurde an Empfänger verschickt
-> Absender erhielt keine e-mail - Kopie
Gruß
Matze
-
- Beiträge: 50
- Registriert: 28. Jun 2009, 22:57
Re: Mailversand via admidio
-> auf welcher seite findest du keine rolle?fasse hat geschrieben:Funktioniert der Mailversand auf beiden Seite nicht ?
Auf einer Seite finde ich keine Rolle an die ich schreiben kann. Bei der Anderen kannst du da noch mal unserer Originale email.php hinkopieren.
Gruß
Fasse
-> bei welcher seite soll ich die originale email.php hinkopieren?