LotusScript エージェントで、MIME クラスを使用して、MIME でマルチパート メールを作成します。動作し、メールは正しく送信されます。
1 つだけ大きな問題があります。名前にアクセント付きの文字が含まれるファイルは正しく転送されません。内容は正しいが、名前が間違っている。私は 100 通りの方法で試しましたが、それが不可能であるか、完全に間違っているかのどちらかです。
ここに私のコード(の一部)があります:
Set Me.mc = Me.mr.createChildEntity()
Set Me.mh = Me.mc.CreateHeader("Content-Disposition")
Call Me.mh.SetHeaderVal(disposition + {; filename="} & attName & {";charset="iso-8859-1"} )
Set Me.mh = Me.mc.CreateHeader("Content-ID")
Call Me.mh.SetHeaderVal( |<| & attName & |>| )
Set stream = Me.session.CreateStream
If stream.Open(attFile) Then
Call Me.mc.SetContentFromBytes(stream, strContentType & {; charset="iso-8859-1"; name="} & attName & {"}, ENC_IDENTITY_BINARY)
Call stream.Close
End If
Notes で手動でメールを作成し、同じファイルを送信すると機能しますが、ファイルの名前がコード化されています。これをどうやって外すの??
更新: attName をエンコードする次の関数を追加しました。
Function URLEncode(s As String, cset As String) As String
Dim v As Variant
v= Evaluate(|@ReplaceSubstring(@URLEncode("| + cset + |";"| + s + |"); "%"; "=")|)
URLEncode= "=?" + cset + "?Q?" + v(0) + "?="
End Function