class= " lineNumbers "
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
|
class=
>procedure TPrintBaseForm.PsRBExportMasterControlEMail " class= " id= " codeSnippet652600 результата '') и, то (результат [длина (результат)] = «; ") после этого
System.Delete (результат, длина (результат), 1);
конец;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //
процедура DoSMTPCreate;
начните
если (не ConnectOnceSendMult) или (fIdSMTP=nil) после этого
начните
fIdSMTP: =TIdSMTP.Create (собственная личность);
//fIdSMTP.OnConnected: =ExpMstCtrl.OnEMailConnected;
//fIdSMTP.OnDisconnected: =ExpMstCtrl.OnEMailDisConnected;
//fIdSMTP.OnStatus: =ExpMstCtrl.OnEMailStatus;
fIdSMTP.Host: =EMailInfo.Host;
fIdSMTP.UserName: =EMailInfo.UserID;
fIdSMTP.Password: =EMailInfo.Password;
fIdSMTP.AuthType: =satNone;
конец;
конец;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //
процедура DoSMTPConnect;
начните
если (не ConnectOnceSendMult) или, то ((fIdSMTP<>nil) и (не fIdSMTP.Connected)) после этого
fIdSMTP.Connect;
конец;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //
процедура DoSMTPDisconnect;
начните
если (не ConnectOnceSendMult) или (IsLastInSendMult и (fIdSMTP<>nil) и fIdSMTP.Connected) после этого
fIdSMTP.Disconnect;
конец;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //
процедура DoSMTPFree;
начните
если (не ConnectOnceSendMult) или, то (IsLastInSendMult и (fIdSMTP<>nil)) после этого
FreeAndNil (fIdSMTP);
конец;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //
процедура SendEmail;
var
IdMessage: TIdMessage;
IdAttachment: TIdAttachmentFile;
iий: интежер;
начните
ExpMstCtrl: =PsRBExportMasterControl;
IdMessage: =TIdMessage.Create (собственная личность);
попытка
DoSMTPCreate;
с IdMessage сделайте
начните
для I: =0 к EMailInfo.Attachments.Count-1 делают
IdAttachment: =TIDAttachmentFile.Create (MessageParts, EmailInfo.Attachments [I]);
Body.Assign (EMailInfo.Body);
Дата: =EMailInfo.Date;
From.Name: =EMailInfo.FromName;
From.Address: =EMailInfo.FromAddress;
ReplyTo.EMailAddresses: =EMailInfo.ReplyTo;
Вопрос: =EMailInfo.Subject;
Recipients.EMailAddresses: =GetAddressString (EMailInfo.RecipientList.Text);
CCList.EMailAddresses: =GetAddressString (EMailInfo.CCList.Text);
BCCList.EMailAddresses: =GetAddressString (EMailInfo.BCCList.Text);
конец;
попытка
DoSMTPConnect;
fIdSMTP.Send (IdMessage);
//if задало (ExpMstCtrl.OnEMailSuccess) после этого
// ExpMstCtrl.OnEMailSuccess (ExpMstCtrl);
EmailSent: =True;
DisplayMailProgress («электронная почта посланное успешно», True);
за исключением
на e: Исключение делает
начните
//if задало (ExpMstCtrl.OnEMailError) после этого
// ExpMstCtrl.OnEmailError (прислужник, E.Message)
//else
DisplayMailProgress ('ошибка: '+E.Message, True);
MessageDlg (E.Message, mtError, [mbOK], 0);
Продолжайтесь: =False;
конец;
конец;
окончательно
DoSMTPDisconnect;
DoSMTPFree;
IdMessage.Free;
конец;
конец;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //
начните
если EmailDialogsEnabled после этого
начните
EmailParamFrm: =TEmailParamsForm.Create (собственная личность, ноли);
с EmailParamFrm, EMailInfo, TransPostHelper.EmailTemplatesTable делает
попытка
edFromName.Text: =FieldByName («FromName ").AsString;
edFromAddr.Text: =FieldByName («FromAddress ").AsString;
edTo.Text: =EmailRecipients;
если (EmailCCRecipients<> '') после этого
edCc.Text: =EmailCCRecipients
еще
edCc.Text: =FieldByName («CC ").AsString;
если (EmailBCCRecipients<> '') после этого
edBcc.Text: =EmailBCCRecipients
еще
edBcc.Text: =FieldByName («BCC ").AsString;
если (EmailSubject<> '') после этого
edSubject.Text: =EmailSubject
еще
edSubject.Text: =GetEmailSubject (FieldByName («вопрос ").AsString);
если (EmailBody<> '') после этого
memoBody.Lines.Text: =EmailBody
еще
memoBody.Lines.Text: =FieldByName («тело ").AsString;
если EmailAccount<> '' после этого
Титр: =Caption+ - '+EmailAccount;
res: =ShowModal;
если res=mrYes после этого
начните
Хозяин: = FieldByName («хозяин ").AsString; //DisplayMailProgress ('хозяин Host='+);
UserID: = FieldByName («UserName ").AsString; //DisplayMailProgress ('UserId='+ UserID);
Пароль: = FieldByName («пароль ").AsString; //DisplayMailProgress ('пароль Password='+);
Body.Text: =memoBody.Lines.Text; //DisplayMailProgress ('Body='+ Body.Text);
Дата: = теперь; //DisplayMailProgress ('Date='+ DateToStr (дата));
FromAddress: = edFromAddr.Text; //DisplayMailProgress ('FromAddress='+ FromAddress);
FromName: = edFromName.Text; //DisplayMailProgress ('FromName='+ FromName);
ReplyTo: = FieldByName («ReplyTo ").AsString; //DisplayMailProgress ('ReplyTo='+ ReplyTo);
Вопрос: = edSubject.Text; //DisplayMailProgress ('вопрос Subject='+);
RecipientList.Commatext: =edTo.Text; //DisplayMailProgress ('Recipient='+ RecipientList.Commatext);
EmailRecipients: =edTo.Text;
EmailSubject: =edSubject.Text;
EmailBody: =memoBody.Lines.Text;
EmailCCRecipients: =edCc.Text;
EmailBCCRecipients: =edBcc.Text;
CCList.Add (edCc.Text);
BCCList.Add (edBcc.Text);
DeleteFilesAfterEMail: =True;
если не ReportSettings.IncludeAttachment после этого
Attachments.Clear;
конец
еще если res=mrNo после этого
начните
EMailInfo.CancelEMail: =True;
DisplayMailProgress («электронная почта не послано - интервенция потребителя», True);
// если SMProgForm<>nil после этого
// SMProgForm.UpdateProgress («не послано электронная почта - интервенция потребителя», поистине)
// еще если SMProgDetForm<>nil после этого
// SMProgDetForm.UpdateProgress («не послано электронная почта - интервенция потребителя», поистине, ложные);
конец
еще если res=mrAbort после этого
начните
EMailInfo.CancelEMail: =True;
Продолжайтесь: =False;
DisplayMailProgress («электронная почта не послано - интервенция потребителя», True);
DisplayMailProgress («остановлен посылать процесс по электронной почте - интервенция потребителя», ложные);
// если SMProgForm<>nil после этого
// начинает
// SMProgForm.UpdateProgress («электронная почта не послано - интервенция потребителя», True);
// SMProgForm.UpdateProgress («остановлен посылать процесс по электронной почте - интервенция потребителя», ложные);
конец //
// еще если SMProgDetForm<>nil после этого
// начинает
// SMProgDetForm.UpdateProgress («не послано электронная почта - интервенция потребителя», поистине, ложные);
// SMProgDetForm.UpdateProgress («остановлен посылать процесс по электронной почте - интервенция потребителя», ложное, ложные);
конец //;
конец;
окончательно
EmailParamFrm.Free;
конец;
конец
еще
начните
с EMailInfo, TransPostHelper.EmailTemplatesTable делают
начните
Хозяин: = FieldByName («хозяин ").AsString;
UserID: = FieldByName («UserName ").AsString;
Пароль: = FieldByName («пароль ").AsString;
если (EmailBody<> '') после этого
Body.Text: =EmailBody
еще
Body.Text: =FieldByName («тело ").AsString;
Дата: = теперь;
FromAddress: = FieldByName («FromAddress ").AsString;
FromName: = FieldByName («FromName ").AsString;
ReplyTo: = FieldByName («ReplyTo ").AsString;
если (EmailSubject<> '') после этого
Вопрос: =EmailSubject
еще
Вопрос: =GetEmailSubject (FieldByName («вопрос ").AsString);
RecipientList.CommaText: =EmailRecipients;
если (EmailCCRecipients<> '') после этого
CCList.CommaText: =EmailCCRecipients
еще
CCList.CommaText: =FieldByName («CC ").AsString;
если (EmailBCCRecipients<> '') после этого
BCCList.CommaText: =EmailBCCRecipients
еще
BCCList.CommaText: =FieldByName («BCC ").AsString;
DeleteFilesAfterEMail: =True;
если не ReportSettings.IncludeAttachment после этого
Attachments.Clear;
конец;
конец;
если не EMailInfo.CancelEMail после этого
начните
SendEmail;
EMailInfo.CancelEMail: =True; // это должно остановить электронная почта невыполнения обязательства посылая случаться
конец;
конец;
|