TIdAttachment.Create(IdMessage1.MessageParts,name); 这条语句为增加一个附件,我如果不想要删除这个附件,我怎么写呢?

解决方案 »

  1.   

    我发送一个带有附件邮件,点一下发送按钮可以发送成功,然后我将附件内容所指的路径清空,再发送,但是收到的邮件中还包含该附件.程序代码如下:
    smtp1.AuthenticationType:=atlogin;
    smtp1.Username:=trim(edit5.Text);
    smtp1.Password:=trim(edit6.Text);
    smtp1.Host:=trim(edit4.Text);
    smtp1.Port:=25;IdMessage1.Body.Clear;
    IdMessage1.Body.Assign(memo1.Lines);
    IdMessage1.From.Address:=trim(edit3.Text);
    IdMessage1.Recipients.EMailAddresses:=trim(edit1.Text);
    IdMessage1.Subject:=trim(edit2.Text);
    if FileExists(edit7.Text) then
      TIdAttachment.Create(IdMessage1.MessageParts,edit7.Text);try
      try
        smtp1.Connect();
        smtp1.Send(IdMessage1);
        except on E:Exception do
        edit8.Text:='Error: '+E.Message;
        end;
       finally
        if smtp1.Connected  then
         smtp1.Disconnect;
       end;
      

  2.   

    //清空
    IdMessage1.MessageParts.Clear;
    //删除某一个
    IdMessage1.MessageParts.Delete(1);
      

  3.   

    出现的问题:如果发完一次邮件带有附件的话,然后接着发送不带附件的邮件就发送不出去?什么原因呢?smtp1.AuthenticationType:=atlogin;
    smtp1.Username:=trim(edit5.Text);
    smtp1.Password:=trim(edit6.Text);
    smtp1.Host:=trim(edit4.Text);
    smtp1.Port:=25;IdMessage1.Body.Clear;
    IdMessage1.MessageParts.Clear;     // 我新加的
    IdMessage1.Body.Assign(memo1.Lines);
    IdMessage1.From.Address:=trim(edit3.Text);
    IdMessage1.Recipients.EMailAddresses:=trim(edit1.Text);
    IdMessage1.Subject:=trim(edit2.Text);
    if FileExists(edit7.Text) then  begin
      TIdAttachment.Create(IdMessage1.MessageParts,edit7.Text);
    end;try
      try
        smtp1.Connect();
        smtp1.Send(IdMessage1);
        except on E:Exception do
        edit8.Text:='Error: '+E.Message;
        end;
       finally
       edit7.Text:='';
        if smtp1.Connected  then
         smtp1.Disconnect;
        showmessage('发送成功');   end;
    edit8.Text:='邮件发送成功!';
      

  4.   

    我已经把附件清除了呀!
    IdMessage1.MessageParts.Clear;