web-dev-qa-db-ja.com

CodeIgniterでURL​​による電子メールの添付ファイルを追加します

CIでファイルを添付するためにこのコードを試しました。これは機能しています:

$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();

しかし、外部URLからファイルを添付したい:

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

いいえ、できません。最初にファイルをダウンロードする必要があります。 Phil Sturgeonの cURLライブラリ を使用してCodeIgniterにファイルを取得できるはずです

$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);

そしてそれを含める

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

後でキャッシュを作成して、ファイルが既にダウンロードされているか、存在するかどうかを確認して、再度取得する必要がないようにすることができます。

4
stealthyninja