1

CDO オブジェクトを使用して電子メール メッセージを作成しています (および VB6 ですが、それは問題ではありません)。

With New CDO.Message
  .To = "<address>"
  .Subject = "Manifest test 8"
  .Organization = "<company>"
  .From = "<address>"
  .Sender = .From

  With .Configuration
    .Fields(cdoSendUsingMethod).Value = cdoSendUsingPort
    .Fields(cdoSMTPServer).Value = "192.168.0.4"
    .Fields.Update
  End With

  With .AddAttachment("c:\import\customermanifestOURACCOUNT11122008110032.dat")
    .Fields(cdoContentDisposition).Value = "attachment; filename=""Consignor.dat"""
    .Fields.Update
  End With

  .Send
End With

ご覧のとおり、メッセージは空で、メールで名前を変更した添付ファイルが含まれています。

添付ファイルは固定幅の ASCII テキスト ファイルであり、CRLF で区切られた、システムからの出力が 1 行に 1 レコード含まれています。

メッセージが送信されると、すべての CR が添付ファイルから削除されるため、受信者は LF のみを含むファイルを取得するため、破損しています。

7bit と base64に変更しようとしましたがContentEncoding、うまくいきませんでした。

ContentMediaTypeへのアタッチメントを設定しようとしましたがtext/plain、うまくいきませんでした。

追加後に添付ファイルの名前を変更しないようにしましたが、うまくいきませんでした。

ContentMediaType添付ファイルの はデフォルトapplication/octet-streamで に設定されているため、そもそもなぜ (そして何によって) 変更されるのかわかりません。

.SaveToFile()の直後に添付ファイルに対して実行すると、.Send()有効なファイルがディスクに保存されます。

これは私のコードの問題ですか、それともメールサーバーの設定か何かですか?

4

3 に答える 3

2

わかりました、それは奇妙でした。

gmail アカウントを使用して、より具体的には gmail Web インターフェイスをテストしました。添付ファイルのリンクをクリックして、受信したファイルを保存しました。そして、ファイルが壊れていました。

代わりにいくつかのシック クライアントを試してみると、問題ないことがわかりました。すべてのファイルが破損することなく適切にダウンロードされます。

したがって、これは (gmail POP3 インターフェースではなく) gmail Web インターフェースのバグだと思います。

于 2008-12-11T14:43:56.393 に答える
0

長い間 CDO を使用していませんが、過去にこの問題が発生したことを覚えています。いろいろ試してみたところ、メッセージの本文に内容があれば、添付ファイルが適切に送信されることがわかりました。

奇妙だ、私は知っている。

試してみて、私たちに知らせてください。

于 2008-12-11T14:20:36.190 に答える