一昨日にcronというものを知って、いろいろと弄り始めた初心者です。
cronで毎時1分にメールを送信させようと思いました。
cron1.sh というシェルスクリプト(?)で sendmail.php を実行させようとしています。
---- cron1.sh ---- (保存形式は[UTF-8] 改行コードは[LF])
#!/bin/sh
#PHP
export LANG=ja_JP.jis
/usr/local/bin/php /virtual/example/public_html/example.com/mail/sendmail.php
exit
-----------------
---- sendmail.php ---- (保存形式は[UTF-8] 改行コードは[CR+LF])
<?
$strMailFrom = "example@example.com";
// $header = "Content-Type: text/plain;charset=iso-2022-jp\r\n";
$header = "From: ".$strMailFrom;
mb_language("Japanese");
$address = 'example2@example.com';
$subject = '件名です';
$message = "本文です";
if(mb_send_mail($address, $subject, $message, $header)){
print("メール送信完了");
}else{
print("送信に失敗");
}
?>
---------------------
ちなみに起動させることまでは上手く行ったのですが、cronを経由して送信させたメールは文字化けが起こってしまいます。
また、実行結果メールも文字化けになっています。
(メーラーは Outlook です。)
ちなみに、sendmail.php から直接のメール送信では文字化けは起こりませんでした。
いくつか自力で調べてみたところ、環境変数に問題があるのかと思ったので、export LANG=ja_JP.jis の部分を、LANG=ja_JP.eucJP、LANG=ja_JP.sjis に変えてみたりしたのですが結果は変わらず。
ファイルの保存形式自体がダメなのか、もしくは何か根本的な部分がダメなのかわかりません。レンタルサーバーのため一時間に一度しかcronで起動させることができないので、なかなか問題解決に至りません。
よろしければ良いアドバイスをください。お願します。
PHPも先月学んだばかりで、最近になってはじめて文字コードや文字化けというものを意識するようになったばかりの初心者です。何か不足している情報などありましたら、補足させていただきます。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
メールの送り方が駄目です。
MIMEエンコードしてから送らないと。
MIMEエンコードが分かりません。とりあえず自分で調べて以下のページを参考に mb_encode_mimeheader() を追加してみましたが、届いたメールの件名は(sendmail.php 直接の起動と cron1.sh からの起動の結果はどちらも同じで)「=?ISO-2022-JP?B?GyRCN29MPiRHJDkbKEI=?=」となってしまいました……。
http://q.hatena.ne.jp/1121403293
MINEエンコードの正しいやり方を教えていただけないでしょうか……?
<?
$strMailFrom = "example@example.com";
$header = "Content-Type: text/plain;charset=iso-2022-jp\r\n";
$header .= "From: ".$strMailFrom;
mb_language("Japanese");
$address = 'example2@example.com';
$subject = '件名です';
$subject = mb_encode_mimeheader($subject);
$message = "本文です";
if(mb_send_mail($address, $subject, $message, $header)){
print("メール送信完了");
}else{
print("送信に失敗");
}
?>
cron1.sh の内容は変更していません。
No.1
- 回答日時:
文字化けの原因はわかりませんが、cron で指定するコマンドを
cron1.sh から sendmail.php にしてみても文字化けしますか?
// crontab
1****root/virtual/example/public_html/example.com/mail/sendmail.php
sendmail.php の先頭に
#!/usr/local/bin/php
を付けて、実行可能なパーミッションにしておくとか。
試してないので、ダメだっらすみません。
アドバイスありがとうございます。
教えていただいた通りいくつか試してみましたが、レンタルサーバーなので一時間毎にひとつのパターンでしかテストできないので、かなり遅れてしまいましたが、結果ダメでした。
> cron で指定するコマンドを cron1.sh から sendmail.php にしてみても文字化けしますか?
文字化けよりも機能しなくなってしまいました……。
> sendmail.php の先頭に #!/usr/local/bin/php を付けて、実行可能なパーミッションにしておくとか。
sendomail.php の先頭に #!/usr/local/bin/php を付けてみましたが特に変化は見られませんでした。
申し訳ありません……。せっかくアドバイスいただいたのに問題解決に至りませんでした。何が問題なんでしょうか……。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP phpの imap_search で漢字コード 1 2022/09/06 17:32
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
サーバーによってはmb_send_mai...
-
PHPでメールが送信できない
-
PHPでメールを送信するには
-
mb_send_mail関数が利用出来ない
-
mb_send_mailでのメール送信が...
-
mail関数を使った場合のReturn-...
-
メールフォームのタイトルが文...
-
さくらサーバーにて、phpからメ...
-
mb_send_mail()が使えない
-
php 完了画面の送信メールのコ...
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
トランザクションが原因?DBに...
-
「@$変数」の「@の意味は?」
-
apache・phpが起動しない・・・
-
PHPの設定で、 エラーが発生し...
-
VBSの「MsgBox」について
-
.phpと.incファイルの違いはな...
-
別ファイルの変数を呼び出した...
-
CFileDialogの最初のディレクト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
さくらサーバーにて、phpからメ...
-
mb_send_mail関数が利用出来ない
-
ローカル環境でのメール送信
-
pearのMailライブラリがうまく...
-
メールの本文が取得できない
-
PHPからメールを送る@さくらイ...
-
指定した時間にPHPプログラムを...
-
mail関数を使った場合のReturn-...
-
mb_send_mailでのメール送信が...
-
cronでメールを送信すると文字...
-
mb_send_mailについて
-
ワードプレス 予約システム
-
mb_send_mailでタイトルにハテ...
-
mb_send_mail()が使えない
-
PHPで、一度に大量のメールの送...
-
phpでのメール送信
-
PHP4.4.1でmb_send_mailの送信...
-
PHPでのフォーム送信・・・・
-
コマンドプロンプト、VBSでの添...
-
メールアドレス形式チェックソ...
おすすめ情報