2009-10-05 5 views
4

Je sais lire un fichier sur le serveur et l'attacher à un email en PHP, mais je voulais savoir si je pouvais joindre un fichier créé par mon script mais pas créé sur le serveur (un peu comme un fichier temporaire).php créer un fichier et l'envoyer en pièce jointe sans réellement créer le fichier

Créez donc un fichier en mémoire et joignez-le au courrier électronique. Bonus: peut-être besoin de créer plusieurs fichiers, serait-ce trop pour le serveur à gérer? Je ne parle pas de Go, mais comme 5 fichiers avec 1000 lignes chacun?

Répondre

10

Oui, vous pouvez le faire, aussi longtemps que la bibliothèque d'email que vous utilisez le supporte. Si vous n'en utilisez pas, vous devriez l'être!
Non, 5 fichiers ne seront pas trop pour votre serveur à moins que vous l'avez acheté en 1993.

Espérons que votre lib ne sera pas besoin d'une référence de fichier - vous pouvez faire quelque chose comme:

$myEmail->attachData('file.name', 'mime/type', $data); 

Si elle a besoin d'un chemin de fichier, vous pouvez utiliser un fichier php://memory:

$f = fopen('php://memory/myfile', 'w'); 
fwrite($f, '...'); 
fclose($f); 

$myEmail->attach('php://memory/myFile'); 
+0

Comment puis-je obtenir la référence de fichier lorsque vous faites quelque chose comme ça? –

+0

Merci cela aide dans la bonne direction –

+0

@Phill Marquer comme la réponse accepter si elle vous aide !! – AntonioCS

Questions connexes