Email verschicken mal anders

Major

Erfahrenes Mitglied
Hallo,

kann ich eine Email auch über ein reales Benutzerkonto verschicken? Das heißt, wir haben hier einen Exchange Server und ich will ihm sagen verschicke meine Email und dann soll er wie wenn ich sie mit Outlook verschicke in meine Sent Box legen. Ich wollte sie mit imap_append() in den Outbox Ordner legen, was auch klappt, dann aber passiert herrlich wenig um nichts zu sagen gar nix.
Eine Idee?

Gruß
Major
 
Versenden musst Du selbst, per SMTP. Die verschickte Mail kannst Du anschliessend dann per IMAP in den Sent-Folder legen.
Eine Mail einfach in die Outbox zu legen bringt nichts, denn IMAP ist ja nicht fuer den Versand zustaendig sondern nur fuer die Ordner-Verwaltung. Zum Versand wird, wie erwaehnt, ganz klassisch mit SMTP gearbeitet.

Als Beispiel poste ich mal den entsprechenden Abschnitt aus meinem Webmailer.
PHP:
if (isset($_POST['sendmail']))
	{
		$smtp=new smtpconnection(MAILHOST,SMTPAUTH,$_SESSION['username'],decryptpw($_SESSION['password']),SSLCONNECT);
		$smtp->sendmail($mail->composemail());
		unset($smtp);
	}
if (((isset($_POST['sendmail'])) && (isset($_POST['savesent']))) || (isset($_POST['savedraft'])))
	{
		if ((isset($_POST['savedraft'])) && (getfolder('Drafts')!=false))
			{
				$mbox=imap_open('{'.MAILHOST.'/norsh/notls}'.getfolder('Drafts'),$_SESSION['username'],decryptpw($_SESSION['password']));
				imap_append($mbox,'{'.MAILHOST.'}'.getfolder('Drafts'),$mail->composemail());
				$mboxinfo=imap_mailboxmsginfo($mbox);
				imap_setflag_full($mbox,$mboxinfo->Nmsgs,'\Seen \Draft');
				imap_close($mbox);
			}
		elseif (getfolder('Sent')!=false)
			{
				$mbox=imap_open('{'.MAILHOST.'/norsh/notls}'.getfolder('Sent'),$_SESSION['username'],decryptpw($_SESSION['password']));
				imap_append($mbox,'{'.MAILHOST.'}'.getfolder('Sent'),$mail->composemail());
				$mboxinfo=imap_mailboxmsginfo($mbox);
				imap_setflag_full($mbox,$mboxinfo->Nmsgs,'\Seen');
				imap_close($mbox);
			}
	}
Hierzu sei noch gesagt, dass ich hier ein paar selbstgeschriebene Funktionen (wie z.B. getfolder()) nutze und 2 meiner Klassen.
 
@Dennis

Aber dann habe ich die normale mail in der SentBox ohne den Header nach dem Versenden. Ich will im Prinzip die Antworten eindeutig an der Mail ID identifizieren.

Ich bastle an einer Klasse, die für mich das Mailen übernimmt egal für welche Anwendung und die natürlich auch das Error Handling wie Bounces, kein connect usw. übernimmt bzw. für jede Anwendung auch die zurückkommenden Mails richtig zuordnet.

gruß
Major
 
Dazu koennte evtl. ein Blick in meine SMTP-Klasse nicht uninteressant sein.
Diese uebernimmt aber wirklich nur SMTP, das war es dann aber auch.
Das Problem mit allem weiterfuehrenden Kram, vor allem mit der MailID ist, dass man da per SMTP meiner Meinung nach nicht drankommt. Die MailID wird meines Wissens nach intern im Mailserver vergeben. Es kann sein, dass diese nachdem die Nachricht akzeptiert wurde ausgegeben wird, aber da bin ich nicht sicher. Das muesste man mal testen, vor allem auch mit verschiedenen Mailservern.
Bounces haben dann aber garnichts mehr mit SMTP zu tun da dabei ja dann der Posteingang (also ueber POP3 oder IMAP) abgefragt werden muss um zu sehen ob da was zurueckgekommen ist. Weiterhin koennte dabei die Zeitverzoegerung eine Rolle spielen da so ein Bounce nicht unbedingt sofort zurueckkommt.
 
Zurück