KENT-WEB サポートコーナー 過去ログ [ 0059 ]


記事No: 6915
投稿日: 2010/01/20(Wed) 22:36:55
タイトルClipMail添付画像が消える件
ID情報: boldies
投稿者: Boldies
URLhttp://www.boldies.com/hajime/test/web_kanesho/www/form/clipmail.html

お世話になります。
この度ClipMailを使ってメールフォームからブログに投稿できるシステムを作っています。
画像のアップロードもしたかったのでClipMailを選ばせて頂きました。


流れとしては、

1.ClipMailメールフォームから画像添付メールを送信
  ↓
2.メールサーバーAで受信
  ↓
3.メールサーバーBへ転送
  ↓
4.ブログ側がメールサーバーBのメールを読み込み
  ↓
5.フォームの内容(画像とテキスト)がブログの記事として投稿される。

という流れです。


現状、フォームにて添付した画像はメールサーバーBまでは問題なく添付されています。
ただブログの記事として読み込む時に添付画像が飛んでしまい、
メール本文のテキストのみが読み込まれ、記事として投稿されてしまいます。

試しにメーラーからメールサーバーBに直接画像添付メールを送った場合は
問題なく画像付きの記事として投稿されます。
よってブログ側の問題ではないことは分かりました。
もちろん添付画像の形式や容量の問題でもありません。

通常のメーラーから送る添付メールと、フォームより送られる添付メールでは
添付の形式が違うのでしょうか?

ClipMailのどこかを変更すれば解決するのでしょうか?
ややこしい問題ではありますが、大変困っていますので
どうかお力を貸して頂けないでしょうか?
よろしくお願い致します。


記事No: 6916
投稿日: 2010/01/21(Thu) 00:30:04
タイトルRe: ClipMail添付画像が消える件
ID情報: onair
投稿者: onair.jp
URLhttp://onair.jp/

> 通常のメーラーから送る添付メールと、フォームより送られる添付メールでは
> 添付の形式が違うのでしょうか?

Thunderbird と比較してみましたが、どんなファイルを添付しても
Content-Type: application/octet-stream
となることくらいしか違いはないみたいです。

ブログシステムは何を使用してますか?


記事No: 6917
投稿日: 2010/01/21(Thu) 12:06:52
タイトルRe^2: ClipMail添付画像が消える件
ID情報: boldies
投稿者: Boldies
URLhttp://www.boldies.com/hajime/test/web_kanesho/www/form/clipmail.html

onair.jp様

ありがとうございます。
やはりContent-Type: application/octet-streamが
問題なのでしょうか?
メールの添付などの仕組みについては全く知識がないもので…
ブログのシステムはWordpressとメール投稿用プラグインKtai Entryです。


記事No: 6918
投稿日: 2010/01/21(Thu) 15:22:13
タイトルRe^3: ClipMail添付画像が消える件
ID情報: onair
投稿者: onair.jp
URLhttp://onair.jp/

> やはりContent-Type: application/octet-streamが
> 問題なのでしょうか?
> メールの添付などの仕組みについては全く知識がないもので…
> ブログのシステムはWordpressとメール投稿用プラグインKtai Entryです。

Ktai Entry のコードを追ってみましたが、やはり Content-Type で画像を判別しているようです。

解決するには、画像に合った Content-Type を出力するように lib/sendmail.pl を改造すれば良いはずです。
これが難しい、かつ jpeg しか添付されない場合、以下の応急措置が考えられます (試してないので保証はできません)。

lib/sendmail.pl - 265行目付近
$body .= qq|Content-Type: application/octet-stream; name="$fname"\n|;
 ↓
$body .= qq|Content-Type: image/jpeg; name="$fname"\n|;


記事No: 6919
投稿日: 2010/01/21(Thu) 16:32:26
タイトルRe^3: ClipMail添付画像が消える件
ID情報: teketen
投稿者: てけてん

onair.jpさんが
> Ktai Entry のコードを追ってみましたが、やはり Content-Type で画像を判別しているようです。
とおっしゃっていますので、適切なmime typeを指定すれば良いかと思います。
画像以外の添付ファイルもアップロードする場合も考慮して、以下の改造をしてみてください。
但し、改造は自己責任でお願いします。
動作がおかしくなった場合は、元に戻してください。

libディレクトリ内のsendmail.pl
一番最後の行に移動して下さい。

1;

の前の行に

sub getMimeType {
my($file_name) = @_;
my(%mime_type) = (
'asc' => 'text/plain', 'css' => 'text/css', 'csv' => 'text/plain', 'hdml' => 'text/x-hdml',
'htm' => 'text/html', 'html' => 'text/html', 'mld' => 'text/plain', 'rtf' => 'text/rtf',
'rtx' => 'text/richtext', 'stm' => 'text/html', 'shtml' => 'text/html', 'txt' => 'text/plain',
'vcf' => 'text/x-vcard', 'xml' => 'text/xml', 'xsl' => 'text/xsl', 'xul' => 'text/xul',

'bmp' => 'image/bmp', 'gif' => 'image/gif', 'ico' => 'image/x-icon', 'jpeg' => 'image/jpeg',
'jpg' => 'image/jpeg', 'png' => 'image/png', 'tif' => 'image/tiff', 'tiff' => 'image/tiff',

'au' => 'audio/basic', 'es' => 'audio/echospeech', 'esl' => 'audio/echospeech',
'm3u' => 'audio/x-mpegurl', 'midi' => 'audio/midi', 'mid' => 'addio/midi',
'mp2' => 'audio/mpeg', 'mp3' => 'audio/mpeg', 'qcp' => 'audio/vnd.qcelp',
'rpm' => 'audio/x-pn-RealAudio-plugin', 'smd' => 'audio/x-smd', 'wav' => 'audio/x-wav',
'wma' => 'audio/x-ms-wma',

'3gp' => 'video/3gpp', '3gp2' => 'video/3gpp2', 'asf' => 'video/x-ms-asf','amc' => 'application/x-mpeg',
'avi' => 'video/msvideo', 'mmf' => 'application/x-smaf', 'mov' => 'video/quicktime',
'mp4' => 'video/mp4', 'mpg' => 'video/mpeg', 'mpeg' => 'video/mpeg', 'mpg4' => 'video/mp4',
'qt' => 'video/quicktime', 'vdo' => 'video/vdo', 'viv' => 'video/vivo',
'vivo' => 'video/vivo', 'wmv' => 'video/x-ms-wmv','wvx' => 'video/x-ms-wvx',

'doc' => 'application/msword', 'gz' => 'application/x-gzip',
'hlp' => 'application/winhlp', 'js' => 'application/x-javascript',
'lha' => 'application/x-lzh', 'lzh' => 'application/x-lzh',
'pdf' => 'application/pdf', 'ppt' => 'application/vnd.ms-powerpoint',
'pmd' => 'application/x-pmd', 'sea' => 'application/x-stuffit',
'sh' => 'application/x-sh', 'sit' => 'application/x-stuffit',
'swf' => 'application/x-shockwave-flash', 'tar' => 'application/x-tar',
'taz' => 'application/x-tar', 'tgz' => 'application/x-tar',
'xhtml' => 'application/xhtml+xml', 'wmf' => 'application/x-msmetafile',
'xls' => 'application/vnd.ms-excel', 'zip' => 'application/zip',

'uu' => 'x-uuencode', 'uue' => 'x-uuencode',
);

$file_name =~ tr/A-Z/a-z/;
$file_name = ($file_name =~ /\.?(\w+)$/) ? $1 : '';
return defined $mime_type{$file_name} ? $mime_type{$file_name} : 'application/octet-stream';
}

のサブルーチンを挿入(これは、WEB POWERさんのstdio.plのgetMimeType関数を利用しています)して下さい。
265行目付近

$body .= qq|Content-Type: application/octet-stream; name="$fname"\n|;



$body .= qq|Content-Type: $type; name="$fname"\n|;

に変更、261行目付近

$fname = &mimeencode($fname);

の次の行に

my $type = getMimeType($tmpfile);

を挿入して下さい。
これで、拡張子によって、mime typeを設定することが出来ると思います。


記事No: 6920
投稿日: 2010/01/21(Thu) 17:00:53
タイトルRe^4: ClipMail添付画像が消える件
ID情報: boldies
投稿者: Boldies
URLhttp://www.boldies.com/hajime/test/web_kanesho/www/form/clipmail.html

onair.jp様、てけてん様

ご丁寧な解凍ありがとうございます。
一度この方法で試してみます。


てけてん様

メールに添付させたいデータはjpgのみです。
この場合jpg以外の拡張子のものを削除して追加すればよいという事でしょうか?


記事No: 6921
投稿日: 2010/01/21(Thu) 17:22:15
タイトルRe^5: ClipMail添付画像が消える件
ID情報: ohkun
投稿者: onair.jp
URLhttp://onair.jp/

> メールに添付させたいデータはjpgのみです。
> この場合jpg以外の拡張子のものを削除して追加すればよいという事でしょうか?

てけてんさんのご回答は、私の回答にある
> 解決するには、画像に合った Content-Type を出力するように lib/sendmail.pl を改造すれば良いはずです。
の実現方法を示されています。jpeg しか添付されないからと言って、それ以外の箇所を削除する必要はありません。
(JPEG, GIF, PNG 以外を添付しても Ktai Entry 側で無視されます)

逆に私が提案した応急措置では、誤って jpeg 以外のファイルを添付しても jpeg として認識されるので、不都合が起きる可能性があります。


記事No: 6922
投稿日: 2010/01/21(Thu) 21:34:47
タイトルRe^5: ClipMail添付画像が消える件
ID情報: teketen
投稿者: てけてん

> メールに添付させたいデータはjpgのみです。
> この場合jpg以外の拡張子のものを削除して追加すればよいという事でしょうか?

特に修正する必要はありません。
絶対にJpegファイルしか添付しないなら、onair.jpさんが提示された方法が簡単で良いでしょう。
この掲示板のやり取りは、過去ログとして残りますので、私は、同じような事をしたい人の為にも、Jpeg以外のファイルを添付した場合でも、対応出来る方法をご案内しました。
どちらの方法を取るかは、Boldiesさんが判断して下さい。
私からは、以上です。


記事No: 6923
投稿日: 2010/01/22(Fri) 12:51:12
タイトルRe^6: ClipMail添付画像が消える件
ID情報: boldies
投稿者: Boldies
URLhttp://www.boldies.com/hajime/test/web_kanesho/www/form/clipmail.html

onair.jp様 てけてん様

onair.jp様に教えていただいた方法でうまくいきました。
この度はいろいろとご丁寧に教えていただきありがとうございました。
大変助かりました。


[検索ページ]