Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Отсутствует название у аттача при отправке письма


Автор: M1ndAction 30.11.2010, 06:37
Добрый день!

Отправляю письмо с помощью TidSmtp с прикрепленным файлом. Но при приеме письма файл без названия, поэтому почтовая программа сама назначает название (каждая по своему, проверял в MS Outlook, Google). Как исправить? smile

Код

function TSendData.SendMail(const Host, Password, Username, Recipient,
  FromAdres, Subject, MessageText: String): boolean;
var EMsg: TIdMessage;
    idSmtp: TIdSMTP;
begin
  result := false;
  idSmtp := TIdSMTP.Create(nil);
  idSmtp.Host:= Host;
  idSmtp.Password:= Password;
  idSmtp.Username:= Username;
  idSmtp.AuthType := satDefault;

  EMsg := TIdMessage.Create(idSmtp);

  try
    EMsg.CharSet := 'Windows-1251';
    EMsg.Subject := Subject;
    EMsg.ContentTransferEncoding  := '8bit';


    EMsg.Recipients.Add.Address :=Recipient;
    EMsg.From.Address := FromAdres;
    EMsg.Body.Text := MessageText;
    EMsg.Date := now;

    strStream.Position := 0;
    strStream.SaveToFile(ExtractFilePath(Application.ExeName)+'data.hrd');
    TIdAttachmentFile.Create(EMsg.MessageParts, ExtractFilePath(Application.ExeName)+'data.hrd');
    {with TIdAttachmentMemory.Create(EMsg.MessageParts, strStream) do
      Filename := 'data.hrd';}

    idSmtp.Connect;
    if idSmtp.Connected then
        try
          idSmtp.Send(EMsg);
          result := true;
        except
        end;
  finally
    idSmtp.Disconnect;
    idSmtp.Free;

    //EMsg.Free;
  end;
end;


Автор: Akella 7.12.2010, 15:55
Поищи здесь мой пример. Там была точно такая же проблема. Там есть и код.
Проблема в кодировке имени файла.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)