はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2018/05/30
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> 当サイト情報 >> スレッド

このページは表示専用です。新規投稿・レスや最新情報はこちらです。

 添付付きメール
日時: 2008/07/27 16:26
名前: 今日からLinux

?不明点・障害内容:今は下記の記載のものをCronで登録してメールを送信してるのですが、ファイルを添付してメールを送信する事は可能でしょうか?(添付ファイル名は20080727のようにその日したいです。)

-ここから-
<?php
$tim = time();
$today = gmdate("Y/m/d(D)",$tim+9*60*60);
$now = gmdate("Y/m/d(D)H:i",$tim+9*60*60);

$mlsb = "件名";
$mlto = "受信アドレス";
$mlfr = "送信アドレス";
$mlmes = <<<mlbody
本文
mlbody;

mb_language("Japanese");
mb_internal_encoding("UTF-8");
mb_send_mail($mlto,$mlsb,$mlmes,"From:$mlfr");
?>
-ここまで-

ご教示の程宜しくお願い致します。

■ コンテンツ関連情報

 Re: 添付付きメール ( No.1 )
日時: 2008/07/29 17:08
名前: ペコ

添付ファイルをbase64で文字列に変換して、
bodyに乗せることで添付することができます。

$t_dataにbase64化したファイルデータが入っているとします。


$header = "From:test@test.com\n"
."MIME-version:1.0\n"
."Content-Type: multipart/mixed;\n"
."boundary=\"thisB\"\n";

$msg_body = "This is a multi-part message in MIME format.\n\n"
."--thisB--\n"
."Content-Type: text/plain; charset=ISO-2022-JP\n"
."Content-Transfer-Encoding: 7bit\n\n"
. "hello!world" //←本文
. "\n\n--thisB\n"
. "Content-Type: image/jpeg;\n"
. "\tname=\"test.jpg\"\n" //←添付データのファイル名
. "Content-Transfer-Encoding: base64\n"
. "Content-Disposition: attachment;\n"
. "\tfilename=\"test.jpg\"\n" //←添付データのファイル名
. $t_data . "\n" //←添付データ
. "\n--thisB--";

mb_send_mail("mail@test.com","Hello!",$msg_body,$header);


これで送れます
 Re: 添付付きメール ( No.2 )
日時: 2008/07/30 11:28
名前: 今日からLinux

ペコ様

ご返信ありがとうございます。

そちらの方はPHPの扱いになるのでしょうか?

もう少し詳しくご教示の程宜しくお願いします。
 Re: 添付付きメール ( No.3 )
日時: 2008/07/30 13:53
名前: ペコ

ひとまず、メールでデータの添付というのは、
どの言語にも機能としては存在しません。まぁPHPでいうとPEARなどがありますが・・・

ひとまず、添付するというのは、
メールの本文に、データ(文字列データに変換したもの)を乗せるというだけのことです。

ちょっと分かりにくい説明になりましたが、
とにかく、

$msg_body = "This is a multi-part message in MIME format.\n\n"
."--thisB--\n"
."Content-Type: text/plain; charset=ISO-2022-JP\n"
."Content-Transfer-Encoding: 7bit\n\n"
. "hello!world" //←本文
. "\n\n--thisB\n"
. "Content-Type: image/jpeg;\n"
. "\tname=\"test.jpg\"\n" //←添付データのファイル名
. "Content-Transfer-Encoding: base64\n"
. "Content-Disposition: attachment;\n"
. "\tfilename=\"test.jpg\"\n" //←添付データのファイル名
. $t_data . "\n" //←添付データ
. "\n--thisB--";

↑これがメールの本文になるということです。


しかしながら、受信者側では、↑のすべてが表示されるのではなく、
「hello!world」という文字列しか表示されません。


ヘッダーに「これはマルチパート(文字列とデータの添付が混ざってます)である」ことを書いておくと、
受信者側のメーラーが自動的に、本文の文字列とデータを分けてくれます。


今回、PHPでやるみたいですが、
これは、PHPでもPERLでもCでもすべて同じです。
 Re: 添付付きメール ( No.4 )
日時: 2008/07/30 18:14
名前: 今日からLinux

ペコ様

ご返信ありがとうございました。

-ここから-
$msg_body = "This is a multi-part message in MIME format.\n\n"
."--thisB--\n"
."Content-Type: text/plain; charset=ISO-2022-JP\n"
."Content-Transfer-Encoding: 7bit\n\n"
. "hello!world" //←本文
. "\n\n--thisB\n"
. "Content-Type: image/jpeg;\n"
. "\tname=\"test.jpg\"\n" //←添付データのファイル名
. "Content-Transfer-Encoding: base64\n"
. "Content-Disposition: attachment;\n"
. "\tfilename=\"test.jpg\"\n" //←添付データのファイル名
. $t_data . "\n" //←添付データ
. "\n--thisB--";
-ここまで-

上記の内容を「ファイル名.php」保存してCronに登録すれば良いんでしょうかね?
(PHPでもPearlでもやり方が分かればOKです。)

度々申し訳ありませんが、ご教示の程宜しくお願いします。
 Re: 添付付きメール ( No.5 )
日時: 2008/07/30 18:23
名前: あめま

>上記の内容を「ファイル名.php」保存してCronに登録すれば良いんでしょうかね?
>(PHPでもPearlでもやり方が分かればOKです。)


結果だけ欲しいということですね(w
 Re: 添付付きメール ( No.6 )
日時: 2008/07/30 21:01
名前: 今日からLinux

あまめ様

ご返信ありがとうございます。
実際やってみてうまくできなかった為、最終的の質問でこのような形になってしまいました。
 Re: 添付付きメール ( No.7 )
日時: 2008/07/30 23:20
名前: ペコ

ちょっと趣旨がよくわかりませんが、
添付メールは送信しなくていいのですか?

私の書いた内容は、あくまで、変数$msg_bodyですから、
これをmb_send_mailなりsendなりの関数で送信しないと何も始まりませんよw

もし、送信までしたいのであれば、↓みたいにしてください。


-ここから-
<?php
$tim = time();
$today = gmdate("Y/m/d(D)",$tim+9*60*60);
$now = gmdate("Y/m/d(D)H:i",$tim+9*60*60);

$mlsb = "件名";
$mlto = "受信アドレス";
$mlfr = "送信アドレス";
$mlmes = <<<mlbody
本文
mlbody;


$header = "From:$mlfr\n" //←←送信者アドレス
."MIME-version:1.0\n"
."Content-Type: multipart/mixed;\n"
."boundary=\"thisB\"\n";

$msg_body = "This is a multi-part message in MIME format.\n\n"
."--thisB--\n"
."Content-Type: text/plain; charset=ISO-2022-JP\n"
."Content-Transfer-Encoding: 7bit\n\n"
. $mlmes //←本文←←←本文をここにいれてください。
. "\n\n--thisB\n"
. "Content-Type: image/jpeg;\n"
. "\tname=\"test.jpg\"\n" //←添付データのファイル名
. "Content-Transfer-Encoding: base64\n"
. "Content-Disposition: attachment;\n"
. "\tfilename=\"test.jpg\"\n" //←添付データのファイル名
. $t_data . "\n" //←添付データ
. "\n--thisB--";

mb_language("Japanese");
mb_internal_encoding("UTF-8");
mb_send_mail($mlto,$mlsb,$mlbody,"From:$mlfr");
?>
-ここまで-

■ その他

ページ先頭へ


Copyright(©)2004-2018 First home server construction. All Right Reserved.