Indyでメール送信しようとしています。
IdSmtp1.QuickSend(host, subject, mailto, from, body);
送信者(form)のパラメータにスペースor小なりが含まれると(例: a<hoge)
「EIdProtocolReplyError クラスの例外を生成しました」とエラーが発生します。
これを回避して送信することは可能ですか?
よろしくお願い致します。
仕様上不可能
SMTPの仕様上それは出来ません。”送信したい”と言うことに重きを置くならば、そのような禁止文字があったら削除する、代替文字に置き換えるなど。
フォームがあるのなら「禁止文字が含まれています」などと注意を促すなど工夫しましょう。
RFCの規則に合わせて書けばよろしいかと。
From: a<hoge
はエラーですが、
From: "a<hoge"
なら送信できるはずです。
色々とご返答ありがとうございます。
実のところ「NMSMTP」コンポでは送信が可能で、
「Indy」で行ったところうまく動作しないので
解決策が無いか質問した次第です。
皆様のおっしゃる通り「仕様」とならば
これ以上待ってもしかたが無いのであきらめます。
ありがとうございました。
ツイート | ![]() |