PHPにはメール送信関数 mail がある。 日本語でメールを送る場合は、mb_send_mail 関数が便利だ。
0001: <?php
0002: /** sendmail.php
0003: * PHPでメール送信する
0004: *
0005: * @copyright (c)studio pahoo
0006: * @author パパぱふぅ
0007: * @version 1.0 2005/09/24
0008: */
0009: /**
0010: * 送信先メールアドレス
0011: * ※セキュリティ上、固定にすべき!!
0012: * @global int $MailTo
0013: */
0014: $MailTo = "yourmail@yourdomain.co.jp";
0015:
0016: /**
0017: * 文字列を整形して返す(1行分)
0018: * @param String $str 追加する文字列(Shift_JIS,EUC-JP,UTF-8)
0019: * @param int $width 折り返す桁数(半角1文字を1桁とする、0なら折り返さない)
0020: * @return String 整形後の文字列(EUC-JP、最後に改行文字を付加)
0021: */
0022: function puts_format($str, $width) {
0023: mb_internal_encoding("EUC-JP");
0024:
0025: $str = mb_convert_encoding($str, "EUC-JP", "Shift_JIS,EUC-JP,UTF-8");
0026:
0027: //折り返さない
0028: if ($width <= 0) {
0029: $dest = $str . "\n";
0030: //折り返す
0031: } else {
0032: $dest = "";
0033: $w = 0;
0034: $l = mb_strlen($str);
0035: for ($i = 0; $i < $l; $i++) {
0036: $ch = mb_substr($str, $i, 1, "EUC-JP"); //文字コード変換
0037: $dest = $dest . $ch;
0038: if ($ch == "\n") $w = 0; //改行なら桁数リセット
0039: else $w += mb_strwidth($ch);
0040: if ($w > $width) {
0041: $w = 0;
0042: $dest = $dest . "\n";
0043: }
0044: }
0045: $dest = $dest . "\n";
0046: }
0047: return $dest;
0048: }
0049:
0050: //初回起動時
0051: if ((isset($_POST["subject"]) == FALSE)) {
0052: $myself = basename($_SERVER["PHP_SELF"]);
0053:
0054: // ここまでPHPプログラム =======================================================
0055: ?>
0056: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
0057: "http://www.w3.org/TR/html4/loose.dtd">
0058: <html lang="ja">
0059: <head>
0060: <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
0061: <title>メールを送信する</title>
0062: </head>
0063: <body>
0064:
0065: <h1>■メールを送信する</h1>
0066: <form method="post" action="<?= $myself ?>" enctype="multipart/form-data">
0067: タイトル<br />
0068: <input name="subject" type="text" size="100" /><br />
0069: 内容<br />
0070: <textarea name="message" rows="10" cols="80">
0071: </textarea>
0072: <br />
0073: <input name="SUBMIT" type="submit" value="送信" />
0074: </form>
0075:
0076: </body>
0077: </html>
0078:
0079: <?php
0080: // ここからPHPプログラム =======================================================
0081: } else {
0082: mb_internal_encoding("Shift_JIS");
0083:
0084: $subject = stripslashes($_POST["subject"]);
0085: $message = stripslashes($_POST["message"]);
0086:
0087: $subject = mb_convert_encoding($subject, "JIS", "Shift_JIS"); //タイトルのみJIS
0088: $message = puts_format($message, 80);
0089:
0090: mb_language("ja");
0091: mb_internal_encoding("EUC-JP");
0092:
0093: $res = mb_send_mail($MailTo, $subject, $message);
0094:
0095: if ($res == FALSE) echo "送信失敗";
0096: else echo "送信成功";
0097: }
0098: ?>
0099:
| 2005年09月26日更新 | ||
| <<前へ | <目次> | 次へ>> |
| 戻る | 【関連ページ】 | |