Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2012, 15:08   #1
Npwas
Форумчанин
 
Аватар для Npwas
 
Регистрация: 26.09.2011
Сообщений: 158
Вопрос Как сделать отправку файла на E-mail?! (Delphi)

Как написать правиль отправку файла на E-mail?! И почему данный код воспринимается как вирус?!

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdMessageClient, IdSMTP, IdMessage,Registry,
  MMSystem;

type
  TForm1 = class(TForm)
    Button1: TButton;
    IdMessage1: TIdMessage;
    Button2: TButton;
    idSMTP1: TIdSMTP;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

PROCEDURE TForm1.Button1Click(Sender: TObject);
 BEGIN
   With idSmtp1 do
    Begin
      AuthenticationType:= atLogin;
      Host:='smtp.mail.ru';
      Port:=25;
      Username:='user';
      Password:='password';
      idMessage1.From.Text:='from@mail.ru';
      idMessage1.Recipients.EMailAddresses:='to@mail.ru';
      idMessage1.Subject:='тема сообщения';
      idMessage1.MessageParts.Clear;
      IF FileExists('d:\text.doc') Then
        TIdAttachment.Create(idMessage1.MessageParts, 'd:\text.txt') ;
      Connect();
      IF Connected Then
       Begin
        Send(IdMessage1);
        Disconnect;
       End;
    End;
END;

END.
<----Весы Там.
Npwas вне форума Ответить с цитированием
Старый 29.04.2012, 19:33   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Вот так у меня работает:
Код:
uses IdAttachmentFile;
...
procedure TForm1.Button1Click(Sender: TObject);
begin
  With IdSMTP1 do
  Begin
    Host := 'smtp.mail.ru';
    Port := 25;
    Username := 'login@mail.ru';
    Password := 'password';
    IdMessage1.From.Text := 'login@mail.ru';
    IdMessage1.Recipients.EMailAddresses := 'to@mail.ru';
    IdMessage1.Subject := 'тема сообщения';
    IdMessage1.MessageParts.Clear;
    IF FileExists('d:\text.txt') Then
      TIdAttachmentFile.Create(IdMessage1.MessageParts, 'd:\text.txt');
    Connect();
    IF Connected Then
    Begin
      Send(IdMessage1);
      Disconnect;
    End;
  End;
end;
Если вы пытаетесь отправить письмо не по нажатию кнопки, да еще и с приложенным файлом, то антивирусу это не нравится . Хотя, скорее, ему не нравится, что вы лезете в реестр. Похоже, вы пытаетесь написать программу, которая будет "воровать" данные из реестра.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 29.04.2012, 23:06   #3
Npwas
Форумчанин
 
Аватар для Npwas
 
Регистрация: 26.09.2011
Сообщений: 158
По умолчанию

Ну как бы воровать из реестра я не собирался!!! Прост надо, чтобы определенно конкретные файлы перекидывало!!! Причем Антивирус валит данный код прямо на компиляции!!!
<----Весы Там.
Npwas вне форума Ответить с цитированием
Старый 30.04.2012, 00:41   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Если для личных нужд, то:
1) Дописать программу
2) Выключить антивирус
3) Скомпилировать программу
4) Положить программу на ее постоянное место хранения
5) В антивирусе добавить программу в исключения
6) Включить антивирус
7) Пользоваться
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 30.04.2012, 12:35   #5
Npwas
Форумчанин
 
Аватар для Npwas
 
Регистрация: 26.09.2011
Сообщений: 158
По умолчанию

А если для более широкого круга пользования, то вариант по труднее выйдет!!! Ведб остальные программы стандартные как то же работают или они во всех антивирусах есть как исключение?! Может быть подскажете где хоть найти информацию о осуществленни данного так, чтобы оно не вступало в конфликт с антивирусом!!!
<----Весы Там.
Npwas вне форума Ответить с цитированием
Старый 01.05.2012, 00:35   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Мне трудно сказать. Можно поискать способы отправки позаковыристее. Сменить среду разработки на более новую/старую. Посмотреть, как поступает антивирус с готовой exe-программой. Возможно он реагирует не на саму отправку, а на какие-то другие действия программы. Сменить антивирус . Добавить в описание программы, что такой-то антивирус по таким-то причинам удаляет данную программу, и написать просьбу о добавлении этой программы в исключения для использования.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать программу по созданию текстового файла delphi Vof Помощь студентам 1 19.02.2011 06:58
post запрос на отправку файла TaTT DoGG Работа с сетью в Delphi 3 08.02.2011 17:28
Как сделать mail активным? Rebel123 Общие вопросы Delphi 3 02.09.2009 19:29
Мне нужно сделать отправку писем на эл. почту для С++ Builder... Sadly_me Общие вопросы .NET 1 29.04.2009 01:24
Как сделать e-mail PAVEL315 HTML и CSS 15 20.05.2007 19:20