Op een server heb ik PHP/MySQL draaien icm het Symfony-framework. Symfony heeft een sfMail plugin voor SwiftMail aan en daarmee loop ik tegen het volgende probleem aan:
Als ik een attachment toevoeg van een op de server aanwezige file middels een relatief path dan werkt dat prima. (zie voorbeeld 1+2 in code hieronder). Als ik een file wil toevoegen vanaf een ander domein (vb3) of gegenereerd via een module/action (vb4) dan gaat het mis. De mail wordt verstuurd zonder attachment (en zonder foutmelding).
Blijkbaar kan de action niet benaderd worden terwijl een copy-paste van de URL in de adresbalk gewoon goed werkt. Sterker nog, een link naar een fysiek aanwezig bestand op een extern domein werkt ook niet.
Is dit een beperking van SwiftMail of doe ik iets verkeerd? Ik kan me voorstellen dat dit op te lossen moet zijn zonder de fysieke attachments op je server te zetten.
*Note: Ik heb de topictitel een aantal keren herschreven. Het aantal beschikbare karakters speelt me parten in het formuleren van een heldere vraag dus op voorhand sorry voor eventuele verwarring daarmee.
*Note2: Deze code is voor gebruik met Symfony maar het probleem speelt vlgs mij gewoon in de PHP-code van SwiftMail.
Als ik een attachment toevoeg van een op de server aanwezige file middels een relatief path dan werkt dat prima. (zie voorbeeld 1+2 in code hieronder). Als ik een file wil toevoegen vanaf een ander domein (vb3) of gegenereerd via een module/action (vb4) dan gaat het mis. De mail wordt verstuurd zonder attachment (en zonder foutmelding).
Blijkbaar kan de action niet benaderd worden terwijl een copy-paste van de URL in de adresbalk gewoon goed werkt. Sterker nog, een link naar een fysiek aanwezig bestand op een extern domein werkt ook niet.
Is dit een beperking van SwiftMail of doe ik iets verkeerd? Ik kan me voorstellen dat dit op te lossen moet zijn zonder de fysieke attachments op je server te zetten.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| public function sendMail($mail) { $mail = new sfMail(); $mail->setContentType('text/html'); $mail->addAddress('you@yourdomain.com'); $mail->setFrom('Me <me@mydomain.com>'); $mail->setSubject('mail for you'); $mail->addAttachment(sfConfig::get('sf_web_dir').'/image/test.png'); < werkt! $mail->addAttachment('./image/test.png'); < werkt ook! $mail->addAttachment('http://www.mydomain.com/image/test.png'); < werkt niet... $mail->addAttachment('./module/action.png'); < dit ook niet... $this->mail = $mail; sfLoader::loadHelpers('Partial'); $this->body = get_partial('mail', array('question' => $question, 'fromuser' => $fromUser, 'touser' => $toUser)); $mail->setBody($this->body); $mail->send(); } |
*Note: Ik heb de topictitel een aantal keren herschreven. Het aantal beschikbare karakters speelt me parten in het formuleren van een heldere vraag dus op voorhand sorry voor eventuele verwarring daarmee.
*Note2: Deze code is voor gebruik met Symfony maar het probleem speelt vlgs mij gewoon in de PHP-code van SwiftMail.