4D-JUG
Would you like to react to this message? Create an account in a few clicks or log in to continue.

4Dメール送信について

2 posters

Go down

4Dメール送信について Empty 4Dメール送信について

投稿 by shige 2024-03-07, 9:41 am

4Dv18(Windows)より、InternetCommandsを使用して日本語メールの送信をしたいのですが...

$error:=SMTP_SetPrefs (0;10;0)
$error:=SMTP_Charset (1;1)
$error:=SMTP_AddHeader ($smtpID;"Content-Type:";"text/plain;charset=Shift_JIS";1)

$error:=SMTP_Body ($smtpID;<<4Dテキストフィールド>>;0) //メッセージ本文


上記設定で、4Dテキストフィールドの内容をそのままメール送信すると...

-------------------------------------------------------------------------
XXXXX様

お世話になります。
XXXX(株)の○○です。

商品カタログをお送りいたします。
ご確認ください。
-------------------------------------------------------------------------
         ↓
-------------------------------------------------------------------------
XXXXX様 お世話になります。 XXXX(株)の○○です。 商品カタログをお送りいたします。 ご確認ください。
-------------------------------------------------------------------------

といったように、改行が行われずメール受信してしまいます。

どうすれば、テキストフィールドと同様に改行が反映されるのでしょうか?
ご教示ください。

よろしくお願いいたします。

shige

投稿数 : 60
登録日 : 2018/03/31

トップに戻る Go down

4Dメール送信について Empty Re: 4Dメール送信について

投稿 by miyako 2024-03-07, 9:43 am

$error:=SMTP_SetPrefs (0;10;0)
$error:=SMTP_Charset (1;1)
$error:=SMTP_AddHeader ($smtpID;"Content-Type:";"text/plain;charset=Shift_JIS";1)

上記をすべて除外するとどうなるでしょうか。

miyako

投稿数 : 480
登録日 : 2016/07/05

トップに戻る Go down

4Dメール送信について Empty Re: 4Dメール送信について

投稿 by shige 2024-03-07, 9:50 am

早速のご連絡ありがとうございます。

上記をコメント化してメール送信してみたのですが...結果は変わりませんでした。
文字化けはありませんが、改行はされません。

何がわるいのでしょうか?

shige

投稿数 : 60
登録日 : 2018/03/31

トップに戻る Go down

4Dメール送信について Empty Re: 4Dメール送信について

投稿 by miyako 2024-03-07, 9:55 am

本文テキストの改行は"\r"でしょうか

それとも"\r\n"でしょうか

miyako

投稿数 : 480
登録日 : 2016/07/05

トップに戻る Go down

4Dメール送信について Empty Re: 4Dメール送信について

投稿 by miyako 2024-03-07, 9:55 am

コメントアウト後,データベースアプリケーションを再起動されたでしょうか

miyako

投稿数 : 480
登録日 : 2016/07/05

トップに戻る Go down

4Dメール送信について Empty Re: 4Dメール送信について

投稿 by shige 2024-03-07, 10:04 am

再起動していませんでした。
再起動してから再度メール送信すると...

「��������������� ���������������������」
文字化けしてしまいます。

ちなみに、テキストフィールドは「ご担当者様\r\rいつもお世話になりありがとうございます。」
のような感じで改行コードが入っています。

shige

投稿数 : 60
登録日 : 2018/03/31

トップに戻る Go down

4Dメール送信について Empty Re: 4Dメール送信について

投稿 by miyako 2024-03-07, 10:25 am

Unicodeモードでしょうか

$mode:=Get database parameter(Unicode mode)  //1ならUnicodeモード

miyako

投稿数 : 480
登録日 : 2016/07/05

トップに戻る Go down

4Dメール送信について Empty Re: 4Dメール送信について

投稿 by miyako 2024-03-07, 10:26 am

$error:=SMTP_SetPrefs (1;10;0)

これだけ適用するどどうなるでしょうか($1が1)

miyako

投稿数 : 480
登録日 : 2016/07/05

トップに戻る Go down

4Dメール送信について Empty Re: 4Dメール送信について

投稿 by shige 2024-03-07, 10:34 am

$mode:=Get database parameter(Unicode mode) //1ならUnicodeモード

は「1」が返りました。

$error:=SMTP_SetPrefs (1;10;0)

だけ、適応していましたが、結果は文字化けしていました。


shige

投稿数 : 60
登録日 : 2018/03/31

トップに戻る Go down

4Dメール送信について Empty Re: 4Dメール送信について

投稿 by shige 2024-03-07, 11:46 am

すみませんコメント化したつもりが以下が残っていました。

$error:=SMTP_AddHeader ($smtpID;"Content-Type:";"text/plain;charset=Shift_JIS";1)

コメント化し、再起動後、メール送信したら改行を確認出来ました。

マニュアルでは、「SMTP_Charset」「SMTP_AddHeader」はセットで使用するように記述されていましたが
必要ないのですね。

shige

投稿数 : 60
登録日 : 2018/03/31

トップに戻る Go down

4Dメール送信について Empty Re: 4Dメール送信について

投稿 by shige 2024-03-07, 1:13 pm

もう一点質問ですが...

メール送信には、カタログファイル(PDF)を添付して送信するのですが、
ファイル名(日本語)が文字化け(????)してしまいます。

$error:=SMTP_Attachment ($smtpID;$AttachPath;2;0;"";"")

ファイルの中身は問題ないのですが、ファイル名を日本語で送信するにはどうすればよいのでしょうか?

shige

投稿数 : 60
登録日 : 2018/03/31

トップに戻る Go down

4Dメール送信について Empty Re: 4Dメール送信について

投稿 by miyako 2024-03-07, 2:31 pm

v18でメール送信が標準コマンドになったこともありInternet Commandsの日本語サポートは幾らか限定的です。

日本語の添付ファイル名をメールのヘッダーで指定する方法はRFC 2183で定義されていますが,Internet Commandsはこれに対応しておらず

Content-Type: application/pdf;
{tab}name="日本語.pdf"

あるいは
Content-Type: application/pdf;
{tab}name="=E6=97=A5=E6=9C=AC=E8=AA=9E.pdf"

のような出力になっているかと思います。

標準コマンドのメール送信であれば,

Content-Disposition: attachment;
{tab}filename*0*=UTF-8'ja'%E6%97%A5%E6%9C%AC%E8%AA%9E.pdf;

のように正しく出力されるはずですが,Internet Commandsの場合,自作のエンコーダー(UTF-8バイトコードを出力する・76バイトを超過しないようにする・文字の途中で改行しないようにする・・・)が必要かもしれません。

miyako

投稿数 : 480
登録日 : 2016/07/05

トップに戻る Go down

4Dメール送信について Empty Re: 4Dメール送信について

投稿 by shige 2024-03-07, 4:06 pm

ご連絡ありがとうございます。

SMTP_Charset (1;1)...を入れたら添付ファイル名が日本語になりました。

一応、これでメール送信は問題なく出来るようになりました。
ありがとうございました。

shige

投稿数 : 60
登録日 : 2018/03/31

miyako likes this post

トップに戻る Go down

4Dメール送信について Empty Re: 4Dメール送信について

投稿 by shige 2024-03-08, 11:53 am

すみません。
関連して、もう一点質問ですが....

別メニューで、HTML形式でのメール送信があるのですが
こちらも日本語が部分的に文字化けしてしまいます。

$error:=SMTP_SetPrefs (0;10;0)
$error:=SMTP_Charset (1;1)
$error:=SMTP_AddHeader ($smtpID;"Content-Type:";"text/html;charset=ISO-2022-JP";1)

$error:=SMTP_Body ($smtpID;vHTMLMail;0)

vHTMLMailをHTML出力し、ブラウザで見ると文字化けはしていません。
メールで送信すると、日本語の一部が文字化けしてしまいます。

どこが問題なのでしょうか??

shige

投稿数 : 60
登録日 : 2018/03/31

トップに戻る Go down

4Dメール送信について Empty Re: 4Dメール送信について

投稿 by miyako 2024-03-11, 11:11 am

$error:=SMTP_AddHeader ($smtpID;"Content-Type:";"text/html;charset=ISO-2022-JP";1)

"charset="を省いてみてはいかがでしょうか。

$error:=SMTP_AddHeader ($smtpID;"Content-Type:";"text/html";1)

miyako

投稿数 : 480
登録日 : 2016/07/05

トップに戻る Go down

4Dメール送信について Empty Re: 4Dメール送信について

投稿 by shige 2024-03-11, 12:58 pm

ご連絡ありがとうございます。

「SMTP_SetPrefs」「SMTP_Charset」「SMTP_AddHeader」をコメント化し、
「SMTP_Body ($smtpID;vHTMLMail;0) 」となっていたのを
「SMTP_Body ($smtpID;vHTMLMail;4)」にしたところ、文字化け現象はなくなりました。

恐らくこれであれば問題なさそうです。
(「SMTP_SetPrefs」「SMTP_Charset」「SMTP_AddHeader」をコメント化したら何か問題ありますか?)
ありがとうございました。

shige

投稿数 : 60
登録日 : 2018/03/31

トップに戻る Go down

4Dメール送信について Empty Re: 4Dメール送信について

投稿 by Sponsored content


Sponsored content


トップに戻る Go down

トップに戻る


 
Permissions in this forum:
返信投稿: 不可