Internet command:SMTP_SetPrefsとSMTP_QuickSend

Product :4D - 4D Server
4D : v17.2 238379

SMTP_SetPrefsの第一引数に1を設定しているにもかかわらず、SMTP_QuickSendで送信した本文の改行はCRLFになりません。
同じコードでv15の時には問題がありませんでした。
追試してみるとv16からの様です。

ご不便をおかけしており申し訳ございません。

ACI0099079

という修正が,近日中に公開されるかと思います。

(v16, v17)

“SMTP_SetPrefs (0;2;0)” (ですから,ご報告の設定とは違います)

ACI0098578 でボディが修正された問題
ヘッダーにも同様の修正が施されたようです。

v16では,Internet Commands が大幅に書き換えられたわけですが,
もともとの仕様が必要以上に複雑だったこともあり,
正確にv15の振る舞いが再現できていませんでした。

おせわになります。

もうすぐ治るんですね。
ところでRから実装されたMAILオブジェクトの方は大丈夫でしょうか?

239600でテストしてみました。
FixListにはACI0099079がありましたので確認しましたが治ってない様です。 :mrgreen:

かしこまりました。

値:0のケースが修正されただけで,値:1のケースはそのままだったようです。

ACI0099821で報告させていただきました。

注記:もちろん,4D側でReplace stringをしてCRをCRLFにすれば良いのですが,
そうしなくても良いようにするためのSMTP_SetPrefs:$1ですので,これは問題です。
また,Apple Mailなど,メールクライアントが修正してくれる場合もありますが,
Web版のGmail等で開けば,すべての行が連結していることが確認できます。

MALIオブジェクトについてもテストしてみました。
同様に改行されない様です。こちらには設定の変更も無い様なのですが今後どの様になるのでしょうか? :mrgreen:

ご指摘ありがとうございます。

当方では現象を再現することができませんでした。

コード:

$o:=New object

$o.smtp:=New object
$o.smtp.host:=“smtp.gmail.com
$o.smtp.acceptUnsecureConnection:=False
$o.smtp.port:=Choose($o.smtp.acceptUnsecureConnection;465;587)
$o.smtp.user:=“d03506325”
$o.smtp.password:="*********"
$o.smtp.keepAlive:=True
$o.smtp.connectionTimeOut:=30
$o.smtp.sendTimeOut:=100

$o.mail:=New object
$o.mail.from:="d03506325@gmail.com"
$o.mail.to:="d03506325@gmail.com"
$o.mail.subject:=“transporter bug: CRLF is not used in text body”
$o.mail.textBody:=“aaa\rbbb\rccc”

$transporter:=SMTP New transporter($o.smtp)

SET TEXT TO PASTEBOARD(MAIL Convert to MIME($o.mail))

$status:=$transporter.send($o.mail)

[]30694325;“Your comment here…”[/]

R5 239691

こちらではこんな感じです。

Code :
$email:=New object
$email.subject:=“送信テストv17R5”
$email.from:=“hosaka@fes.co.jp”
$email.to:=“hosaka@fes.co.jp”
$email.textBody:=“本文です。\rほげほげ\rほげほげ\r最後の行です。”

[]30694415;“Your comment here…”[/]

メールオブジェクトのサンプルコードをコピペして、必要なところを書き換えただけです。
何が原因なのでしょうか?

再現しました。

本文が英数のみだと,7-bit asciiで送信される(エンコーディング検出)ので,

日本語を含めてquoted-printableを強制する必要がありました。

ACI0099825

: Keisuke MIYAKO

再現しました。

本文が英数のみだと,7-bit asciiで送信される(エンコーディング検出)ので,

日本語を含めてquoted-printableを強制する必要がありました。

すみません確認です。
quoted-printable一択なのでしょうか?
base64にはできるのでしょうか。

スルドイご指摘です。

個人的には,いろいろ不満なのですが,添付ファイル以外は「quoted-printable」です。

https://doc.4d.com/4Dv17R5/4D/17-R5/transporterbodyCharset.303-4286075.ja.html

現状はそうなんですね。
できればbase64も追加してほしいです。 :pray:

なんで仕様にあるのに手を抜くのでしょうかね。 :mrgreen:
4Dの開発部って昔からそんなところがある様に感じます。

https://forums.4d.com/Post//30840503/1/

Feature Requestです。

ありがとうございます。 :pray:

追加情報:

v18 (17 R6リリースと同時にベータ公開予定) でサポートされることになりました。

改行コードがCRLFにならない件:

v17.243596
v18.243653

で修正されました。

この件,原因を辿ると,v6.8のころからすでのドキュメントが間違っており(CRになる,と記述),
なぜか日本語版のドキュメントだけがCRLFになる,という内容になっていました。
(担当者が独断で書き換えたのかもしれません)

v15まで,実際の動作はCRLF,ドキュメントはCRという状態が続き,
v16でプラグインを再開発した際,ドキュメントどおりに作ったことで動作が変わってしまったようです。

: Keisuke MIYAKO

改行コードがCRLFにならない件:

v17.243596
v18.243653

で修正されました。

この件,原因を辿ると,v6.8のころからすでのドキュメントが間違っており(CRになる,と記述),
なぜか日本語版のドキュメントだけがCRLFになる,という内容になっていました。
(担当者が独断で書き換えたのかもしれません)

v15まで,実際の動作はCRLF,ドキュメントはCRという状態が続き,
v16でプラグインを再開発した際,ドキュメントどおりに作ったことで動作が変わってしまったようです。

v18で確認しました。
とりあえずInternet commandの方は解決ということの様なのですが、
Mailオブジェクトの方はCR→CRLF変換をしてくれない様です。
新しい機能が追加されているのかドキュメントを確認しましたがしれらしい記述を見つけることが出来ませんでした。
どうなるのでしょうか?

Internet commandから移行する場合の注意点として残るのならドキュメントにちゃんと明記して欲しいのですが…

Transporterのほうは別件(ACI0099825)で対応中です。

申し訳ございません。

v18リリースまでに間に合えば問題ないです。
よろしくお願いいたします。 :pray: