![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_07.png?e8efa67)
以下の環境にてメール送信プログラムを作成していますが、
ありがちな文字化け、且、ボディーが表示されない不具合が発生しています。
サーバ:linux apache レンタルサーバ
※Encode.pm、Jcode.pm無し。モジュールインストール不可。
Perl version: 5.006001
ソースエンコード:utf-8
自分の解釈としてはutf8で記述しているので、
charset=utf-8にしておけば、
MIMEエンコードさえしてやれば
表示できると考えているのですが、
やはり甘い考えなのでしょうか?
また、同サイト質問NO2868794も参考にさせていただきましたが、上手くいきません。
以下ソース(エンコード:utf-8)
use utf8;
use MIME::Base64;
use POSIX;
※アドレス表記はこのサイトの投稿チェックに引っかかるので省略します。
my $to = 'XXXX@XXXX'.XXX;
my $from_nm = "送信者名";
my $from_adr = "XXXXX@XXX.XXX";
my $subject = "メール表題";
my $body = "本文";
# 送信者名を MIME エンコード
encode_base64($from_nm,"");
# subjectを MIME エンコード
encode_base64($subject,"");
$subject = "=?utf-8?B?" . $subject . "?=";
# 本文を MIME エンコード
encode_base64($body);
my $MailPass = "XXXX/XXXX/XXX"; #SendMail Pass
open(MAIL,"| $MailPass -t");
#========================================================
print MAIL <<"EOF_MAIL";
From: $from_nm<$from_adr>
To: $to
Subject: $subject
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64
MIME-Version: 1.0
$body
EOF_MAIL
#========================================================
close MAIL;
その他、色々ググっては見たのですが、自分ではみつけられず、
どうかアドバイスありましたらよろしくお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
> ありがちな文字化け、且、ボディーが表示されない不具合が発生しています
「ありがちな文字化け」ってどんなのですか?
「ボディーが表示されない」だけですか?送信自体されてないのですか?
まず、すごく基本的なことなんですけど
encode_base64 のマニュアルを良く読むことから始めてはいかがでしょうか?
http://perldoc.jp/docs/modules/MIME-Base64-2.12/ …
このプログラムでは、おそらく、あなたの期待通りに動作していません。
あと、いきなりメールにするのではなく
my $MailPass = "/usr/bin/cat";
などして、標準出力で内容が正しいか確認するのもいいかと。
この回答への補足
アドバイス有難うございます。
「ありがち」と言うのは、ウェブで検索してもよく質問されているので、
「よくある質問で恐縮です」という意味で表現させて頂きました。
紛らわしい表記で申し訳ありませんでした。
メール内容としては、ヘッダ、ボディー共に送信されています。
ただ、エンコードが正常にできていないのか、メーラの方でヘッダ内文字が文字化けし、
またボディーが表示されていない状態です。
アドバイス通りよくマニュアルを良く読むと、
エンコード値はリターン値として返ってくる事に気が付き、
修正しましたらボディーが出てくるようになりました。
有難うございました。
しかしながら送信者の日本語表示部分だけ英数字で表示されており、
ここがどういう事なのかが理解できません。
「送信者名」→「6YCB5L+h6ICF5ZCN」
試しにエンコード無しで試してみましたら、
beckyでは正常に出力されましたが、
OutlookExpressだと文字化けしてしまいました。
送信者名部分はメーラによって処理が異なるのでしょうか。
何か特殊な方法を取る必要があるのでしょうか?
またアドバイスありましたら宜しくお願いします。
表題と同じく、送信者も同じコードを付加させることで正常に表示されるようになりました。
# 送信者名を MIME エンコード
$from_nm=encode_base64($from_nm,"");
$from_nm = "=?utf-8?B?" . $from_nm . "?=";
# subjectを MIME エンコード
$subject=encode_base64($subject,"");
$subject = "=?utf-8?B?" . $subject . "?=";
有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP Content-Typeが機能していない? 2 2022/07/17 11:10
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- Gmail 【お助け!】サーバーからのメール送信でGmailに送信されない問題について 1 2023/06/20 22:03
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP php 完了画面の送信メールのコードを書いているのですが・・・ 2 2023/06/02 12:01
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- HTML・CSS HTMLソースの質問 3 2022/07/28 13:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
pythonエラー
-
jcode.plとはどんなものですか
-
CSVファイルの中で、「 , 」カ...
-
英数字のみ全角から半角に変換
-
エクセルで数値を全角文字(カ...
-
VBA EXCEL あるセルの中の一...
-
EXCELからCSVにすると余計なカ...
-
「何とかで始まり、何とかで終...
-
VBA 置換文字がみつからない時
-
文字コードの%E3%80%とは何です...
-
マクロを使ってフォルダー内に...
-
csvデータ ダブルクォーテ...
-
COBOLでの全角文字の判定をした...
-
住宅にカナを入力する際に丁目...
-
C#で、テキストボックスの入力...
-
データにカンマが入ったCSVデー...
-
[VBA][Excel]クリップボードか...
-
IEからEdgeへの移行に伴うIMEの...
-
スペースで区切られた氏名から...
-
正規表現 特定の文字列を含む行...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
IMAP4でsubjectが検索ヒットしない
-
CASLIIの数値データ入出力
-
pythonエラー
-
BASP21によるbase64のデコード...
-
jisコードで16進数の『3c』か...
-
「繝・せ繝・」となる文字化け
-
URLエンコードされたデータを戻...
-
1つのサイトで文字コードが混在...
-
perlの日本語文字コードはどう...
-
Encodeモジュールで日本語化したい
-
Lite.pmを使ったメールで文字化け
-
Perlでのメール本文の解析について
-
Cookie変数の命名について
-
Perl:ファイル名だけ文字化けする
-
Perl 文字化け
-
javaでエンコードがうまくいかない
-
MIMEでエンコードされたMailのS...
-
メール(iso-2022-jp-2)のデコ...
-
index関数で日本語を使用する場...
-
Encode.pmで文字コードの判別
おすすめ情報