Perl, Unix Email: скачать CSV в выпуске браузера - PullRequest
0 голосов
/ 05 мая 2011

У меня есть это:

    open(MAIL,"|/usr/sbin/sendmail -t");
       ## Mail Header
       print MAIL "To: $GLOB_OPT{email}\n";
       print MAIL "From: $GLOB_OPT{from}\n";
       print MAIL "Subject: $GLOB_OPT{sub}\n";
       print MAIL qq|Content-Type: text/html; charset=us-ascii\n|;
       print MAIL qq|Content-Transfer-Encoding: 7bit\n|;
       print MAIL qq|MIME-Version: 1.0\n\n|;
       print MAIL qq|<h3>Download File :</h3><br>|;
       print MAIL qq|<a href="$GLOB_OPT{html}" rel="nofollow" target="_blank">Click Here</a>|;
    close(MAIL);

Я хочу отправить гиперссылку пользователю, чтобы он мог загрузить файл csv по пути $ GLOB_OPT {html}.

Когда я открываю ссылку в своем электронном письме, в браузере открывается CSV. Я хочу вместо браузера загрузить файл. Что я могу сделать?

Ответы [ 3 ]

2 голосов
/ 05 мая 2011

Попробуйте использовать content-disposition в заголовках http на стороне веб-сервера. Это даже работает с .htaccess .

Насколько я понимаю, способ отправки электронного письма не имеет ничего общего с выбором сохранения / отображения в браузере.

1 голос
/ 05 мая 2011

Не используйте системную команду sendmail.Вместо этого используйте модуль MIME :: Lite .

У них есть пример кодирования , который в значительной степени делает именно то, что вы хотите.

ЭтоКстати, вы не зависите от внешней команды, которая может работать или не работать (в зависимости от системы и ее конфигурации).

0 голосов
/ 05 мая 2011

Вы можете вывести CSV через скрипт, который отправляет браузеру первый mime-заголовок «application / octet-stream» вместо значения по умолчанию MIME-тип , отправленный apache (или используемым сервером). Вы также можете настроить сервер так, чтобы он сам отправлял заголовок, связав расширение .csv с типом mime "application / octet-stream". см. также Документы Apache

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...