SwiftMailer akzeptiert mein setSubject nicht


suntrop

Erfahrenes Mitglied
Hallo. Ich habe gerade den Swift Mailer eingebunden, um Mails via SMTP versenden zu können.
Die ersten Testmails liefen auch einwandfrei. Nur jetzt erhalte ich folgende Meldung:

Fatal error: Call to undefined method Swift_Mailer::setSubject() in /pfad/zur/datei.php on line 113

In Line 113 steht:
->setSubject('My amazing subject')

und der ganze Code sieht so aus:
PHP:
//Create the Transport
	$transport = Swift_SmtpTransport::newInstance($config['EMAIL']['SMTP'], $config['EMAIL']['PORT'])
	  ->setUsername($config['EMAIL']['USERNAME'])
	  ->setPassword($config['EMAIL']['PASSWORD'])
	  ;
	  
	//Create the Mailer using your created Transport
	$mailer = Swift_Mailer::newInstance($transport)
		->setSubject('My amazing subject')
		->setFrom(array('[email protected]' => 'Webdevelopment'))
		->setReturnPath('[email protected]')
		->setBcc('[email protected]')
		->setReplyTo('[email protected]')
		->setTo(array('[email protected]', 'nochmal[email protected]' => 'suntrop'))
		->setBody('Nachrichtentext der E-Mail')
		->addPart('<q>Here is the message itself</q>', 'text/html')
		;
	  
	//Send the message
	$result = $mailer->send($message);

Ich wollte es genauso umsetzten, wie in diesem Beispiel: http://swiftmailer.org/docs/message-quickref (mit einer Mischung aus diesem: http://swiftmailer.org/docs/sending-quickref)

Warum aktzeptiert das $mailer-Objekt mein setSubject() nicht?
„Call to undefined method“ ist mir schon einige Male begegnet, aber hier sehe ich keinen Unterschied zum Beispiel in der Doku und vorher hat es funktioniert :confused:

Kann mir jemand auf die Sprünge helfen?
 

saftmeister

Nutze den Saft!
Naja, nicht ganz. Die Methode setSubject befindet sich in der Klasse Swift_Message, da diese die Klasse Swift_Mime_SimpleMessage erweitert. Das bedeutet, du musst erstmal eine Message erzeugen, diese kannst du dann an send() übergeben:

PHP:
    //Create the Mailer using your created Transport
    $mailer = Swift_Mailer::newInstance($transport);

    $message = Swift_Message::newInstance()
        ->setSubject('My amazing subject')
        ->setFrom(array('[email protected]' => 'Webdevelopment'))
        ->setReturnPath('[email protected]')
        ->setBcc('[email protected]')
        ->setReplyTo('[email protected]')
        ->setTo(array('[email protected]', '[email protected]' => 'suntrop'))
        ->setBody('Nachrichtentext der E-Mail')
        ->addPart('<q>Here is the message itself</q>', 'text/html')
        ;

    //Send the message
    $result = $mailer->send($message);
 

suntrop

Erfahrenes Mitglied
Hatte gar keine Info erhalten, dass du geantwortet hast.

Habe es mittlerweile hin bekommen. Ich hatte übersehen, dass ich zwei Objekte brauche, eines für die Message und eines zum Senden. Jetzt gehts aber :)

Danke dir!
 

Forum-Statistiken

Themen
272.354
Beiträge
1.558.605
Mitglieder
187.826
Neuestes Mitglied
drmidu