1

当社の顧客は主に MS Outlook を使用していますが、他のクライアントからコードから新しいメール ウィンドウを作成する際に問題が発生することもあります。

mailto: の代替手段も実装しようとしましたが、attachment="C:\filename.txt" を使用すると失敗します。

とにかく、メール受信者への送信を使用してファイルを右クリックすると、ほとんどの場合機能しますが、コードでこれを行う方法が見つかりませんでした。

ファイルが添付された新しいメールを作成する他の方法はありますか?

また、mapi コードが原因でアプリケーション全体がクラッシュすることも経験しました。Windows エラーでは、次のようなエラーが頻繁に発生します。

Faulting module name: dhcpcsvc.DLL, version: 6.1.7600.16385, time stamp: 0x4a5bd9b5
Exception code: 0xc0000005
Fault offset: 0x00001d00
Faulting process id: 0x868
Faulting application start time: 0x01ca7fbc86a3e836
Faulting application path: C:\Program Files (x86)\Microsoft Office\OFFICE11\OUTLOOK.EXE
Faulting module path: C:\Windows\system32\dhcpcsvc.DLL
Report Id: c60fa358-ebaf-11de-8b4f-0026b9486d93
4

2 に答える 2

0

添付ファイル付きの新着メールを作成する他の方法はありますか?

はい。Indyを使用して直接送信できます:TIdSMTP + TIdMessage+TIdAttachmentFile。

サンプルコード:

IdMessage := TIdMessage.Create(nil);
IdSMTP := TIdSMTP.Create(nil);
try
    IdMessage.Subject := 'YourMessageSubject';
    IdMessage.Recipients := 'targetmail1@example.com,targetmail2@example.com';
    IdMessage.CCList := ...
    IdMessage.BccList := ...
    IdMessage.Body.Text := 'YourMessageText';
    IdSMTP.Host := 'smtp.example.com';
    i := 1;
    TIdAttachmentFile.Create(IdMessage.MessageParts, TFileName('YourAttachmentFileName'));
    try
      IdSMTP.Connect;
      IdSMTP.Send(IdMessage);
    finally
      IdSMTP.Disconnect;
    end;
finally
    IdMessage.Free;
    IdSMTP.Free;
end;
于 2012-06-01T12:41:18.480 に答える
0

参照:Delphiで「送信先...」をシミュレートするにはどうすればよいですか?

このコードは、ファイルがすでに添付された状態で新しい「メールの作成」ウィンドウを開く方法を示し、「送信先...」シェルコンテキストメニューのオペレーティングシステムのデフォルトアクションをシミュレートします。

于 2012-06-01T12:45:51.663 に答える