web-dev-qa-db-fra.com

Ajouter des pièces jointes à un courrier électronique par URL dans CodeIgniter

J'ai essayé ce code pour attacher un fichier dans CI. Cela fonctionne:

$this->load->library('email');
$this->email->from('[email protected]', 'vignesh');
$this->email->subject('Email Test with attachment');
$this->email->message('Testing the email class IN CODEIGNITER');
$this->email->attach('/path/to/attachment1.jpg');
$this->email->send();

Mais je veux joindre un fichier à partir d'une URL externe:

$this->email->attach('http://mydomain.in/path/to/attachment1.jpg');
2
asvignesh

Non, ce n'est pas possible, vous devez d'abord télécharger le fichier. En utilisant bibliothèque cURL de Phil Sturgeon pour CodeIgniter, vous devriez pouvoir obtenir le fichier.

$this->load->library('curl');
$img = $this->curl->simple_get('http://mydomain.in/path/to/attachment1.jpg');
$filename = basename($img);
write_file("./upload/path/" . $filename, $img);

et ensuite l'inclure

$this->email->attach('/path/to/attachment1.jpg');

Vous pourrez ultérieurement intégrer la mise en cache pour vérifier si le fichier a déjà été téléchargé/existe, de sorte qu'il n'a pas besoin de le récupérer à nouveau.

4
stealthyninja