[swiftmailer] Fatal error: Uncaught exception

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • klaaz
  • Registratie: April 2000
  • Laatst online: 18-09 22:37

klaaz

it's me!

Topicstarter
Ik heb een probleem bij het gebruik van de swiftmailer class in mijn PHP code. Wanneer ik wget gebruik om het script aan te roepen verloopt alles prima, de mailing wordt keurig verzonden. Mijn huidige hostingprovider stopt de uitvoer van script uitgevoerd via de browser (en wget) echter na ca 2 minuten en zegt dat ik het maar via de PHP CLI moet uitvoeren. (set_time_limit(0); in het script werkt ook niet)

Als ik het script (na aanpassing van de paden) aanroep in de cronjob gaat het echter mis tijdens de uitvoering van het script (wanneer de mail middels swiftmailer wordt verzonden):

code:
1
if($numSent = $mailer->batchSend($message, $failures))


Het script wordt afgebroken en geeft de volgende meldingen in het log:

code:
1
2
3
4
5
6
7
Fatal error: Uncaught exception 'Swift_TransportException' with message 'Expected response code 220 but got code "", with message ""' in /home/users/mysite/web.mysite.com/cms/includes/_mailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php:406
Stack trace:
#0 /home/users/mysite/web.mysite.com/cms/includes/_mailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php(299): Swift_Transport_AbstractSmtpTransport->_assertResponseCode('', Array)
#1 /home/users/mysite/web.mysite.com/cms/includes/_mailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php(107): Swift_Transport_AbstractSmtpTransport->_readGreeting()
#2 /home/users/mysite/web.mysite.com/cms/includes/_mailer/lib/classes/Swift/Transport/SendmailTransport.php(61): Swift_Transport_AbstractSmtpTransport->start()
#3 /home/users/mysite/web.mysite.com/cms/includes/_mailer/lib/classes/Swift/Mailer.php(74): Swift_Transport_SendmailTransport->start()
#4 /home/users/mysite/web.mysite.com/cms/includes/_mailer/lib/classes/ in /home/users/mysite/web.mysite.com/cms/includes/_mailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php on line 406


Ik heb alle onderwerpen m.b.t. deze melding afgezocht en ben na een avond zoeken en testen nog net zo ver als het begin van de avond. M.b.v. wget werkt het wel. Mis ik iets?

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Euh, nee, je vertelt net zelf dat het script na 2 minuten stopt.
Misschien dat de cronjob wél langer loopt (zoals je bedoeling is) en dan bij een server uit komt waar de wget-method allang een timeout zou hebben gehad? En dat die server een vage/ongeldige response teruggeeft of timeout waar swiftmailer weer van op z'n bek gaat? De foutmelding an sich lijkt me meer dan duidelijk: "Expected response code 220 but got code "", with message ""'. Dat lijkt op een lege response of een timeout oid die niet (goed) wordt afgehandeld.

Ik zou eens beginnen met loggen ofzo om te zien bij welke mail/opdracht de swiftmailer op z'n bek gaat en dan eens met telnet te verbinden met die server om te zien wat er gaande is. En zo zijn er nog wel 15 methoden om te achterhalen waar de fout (waarschijnlijk) zal zitten. Dat is een kwestie van (goed) debuggen: Debuggen: Hoe doe ik dat?. Daar kan 2 weken googlen nog niet tegen op, laat staan een avond ;)

[ Voor 25% gewijzigd door RobIII op 06-07-2010 01:07 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • klaaz
  • Registratie: April 2000
  • Laatst online: 18-09 22:37

klaaz

it's me!

Topicstarter
RobIII schreef op dinsdag 06 juli 2010 @ 01:03:
[...]

Euh, nee, je vertelt net zelf dat het script na 2 minuten stopt.


[...]

Misschien dat de cronjob wél langer loopt (zoals je bedoeling is) en dan bij een server uit komt waar de wget-method allang een timeout zou hebben gehad? En dat die server een vage/ongeldige response teruggeeft of timeout waar swiftmailer weer van op z'n bek gaat? De foutmelding an sich lijkt me meer dan duidelijk: "Expected response code 220 but got code "", with message ""'. Dat lijkt op een lege response of een timeout oid die niet (goed) wordt afgehandeld.

Ik zou eens beginnen met loggen ofzo om te zien bij welke mail/opdracht de swiftmailer op z'n bek gaat en dan eens met telnet te verbinden met die server om te zien wat er gaande is. En zo zijn er nog wel 15 methoden om te achterhalen waar de fout (waarschijnlijk) zal zitten. Dat is een kwestie van (goed) debuggen: Debuggen: Hoe doe ik dat?. Daar kan 2 weken googlen nog niet tegen op, laat staan een avond ;)
Stoppen bij draaien als wget proces doet ie na zo'n 270 mails, werken doet het dus, alleen niet zoals ik het graag wil... ;)

(Op andere servers kon de time limit tot dusver overruled worden)

Aangezien het één wel (wget) en het ander niet (PHP cli) werkt leek het me iets eenvoudigs wat ik door mijn blindstaren op de foutmelding (zonder enige zinnige info) over het hoofd zie. Het gaat mis zodra de swift mailer class over gaat tot het (batch) verzenden van de mails ($mailer->batchSend($message, $failures)), dat zou gezien de kwaliteit van de class probleem loos moeten werken lijkt me (maar doet dat niet ;)).

Zijn er essentiele verschillen in het draaien van een PHP script in wget (browser) of PHP cli (afgezien van de absolute paden) waar ik op moet letten?

[ Voor 4% gewijzigd door klaaz op 06-07-2010 01:21 ]


Acties:
  • 0 Henk 'm!

  • FragFrog
  • Registratie: September 2001
  • Laatst online: 09:34
Security-wise kan er het een en ander veranderen, afhankelijk van hoe swiftmailer werkt kun je daar last van hebben, al lijkt het me wat vreemd. Daarnaast zijn je paden anders maar dat lijk je zelf al aangepast te hebben. Zie ook deze page.

De vraag is echter, stopt het script via CLI direct, of pas ergens na enkele honderden mailtjes? RobIII (en ikzelf ook overigens) verwacht volgens mij dat het probleem bij bijvoorbeeld ontvanger #312 ligt zodat dit probleem ook bestaat in module mode maar daar simpelweg niet optreedt omdat je niet verder komt dan mailtje #270. Als dat het niet is zou mijn volgende gok zijn dat er ergens een file include faalt doordat je cron user geen leesrechten heeft (of een pad nog steeds fout staat), debug eens wat je als input voor swiftmailer gebruikt in beide modes en let op eventuele verschillen daar :)

[ Voor 24% gewijzigd door FragFrog op 06-07-2010 02:11 ]

[ Site ] [ twitch ] [ jijbuis ]


Acties:
  • 0 Henk 'm!

  • klaaz
  • Registratie: April 2000
  • Laatst online: 18-09 22:37

klaaz

it's me!

Topicstarter
Het probleem treed direct op voordat er maar één mail wordt verzonden.

Ik zal er nog eens goed doorheen lopen en jouw aandachtspuntjes erin meenemen. Goed tips iig. :D
Pagina: 1