<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Fox4um - Gmail hesabı ile mail gonderme]]></title>
	<link rel="self" href="http://www.fox4um.com/feed/atom/topic/1153/"/>
	<updated>2008-10-23T09:12:58Z</updated>
	<generator>PunBB</generator>
	<id>http://www.fox4um.com/topic/1153/gmail-hesabi-ile-mail-gonderme/</id>
		<entry>
			<title type="html"><![CDATA[Re: Gmail hesabı ile mail gonderme]]></title>
			<link rel="alternate" href="http://www.fox4um.com/post/6895/#p6895"/>
			<content type="html"><![CDATA[<p>kodlari tekrar duzenledim ve test ettim calisiyor</p>]]></content>
			<author>
				<name><![CDATA[soykanozcelik]]></name>
				<uri>http://www.fox4um.com/user/4/</uri>
			</author>
			<updated>2008-10-23T09:12:58Z</updated>
			<id>http://www.fox4um.com/post/6895/#p6895</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Gmail hesabı ile mail gonderme]]></title>
			<link rel="alternate" href="http://www.fox4um.com/post/6894/#p6894"/>
			<content type="html"><![CDATA[<p>prg yi CDO2000 adıyla kaydetmek şart.
</p><p>.cUserName = &quot;yourGmailAccount@gmail.com&quot;
<br />.cPassword = &quot;yourGmailPassword&quot;
<br />.cFrom = &quot;yourGmailAccount@gmail.com&quot;
<br />.cTo = &quot;somenody@otherdomain.com, somenodyelse@otherdomain.com&quot;
</p><p>bunlara gerekli bilgileri yazdım, çalıştı.</p>]]></content>
			<author>
				<name><![CDATA[birol]]></name>
				<uri>http://www.fox4um.com/user/159/</uri>
			</author>
			<updated>2008-10-23T09:03:40Z</updated>
			<id>http://www.fox4um.com/post/6894/#p6894</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Gmail hesabı ile mail gonderme]]></title>
			<link rel="alternate" href="http://www.fox4um.com/post/6893/#p6893"/>
			<content type="html"><![CDATA[<p>koda eklemeleri yaptim ancak test etmedim</p>]]></content>
			<author>
				<name><![CDATA[soykanozcelik]]></name>
				<uri>http://www.fox4um.com/user/4/</uri>
			</author>
			<updated>2008-10-23T08:44:05Z</updated>
			<id>http://www.fox4um.com/post/6893/#p6893</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Gmail hesabı ile mail gonderme]]></title>
			<link rel="alternate" href="http://www.fox4um.com/post/6883/#p6883"/>
			<content type="html"><![CDATA[<p>Selamlar, 
<br />Çok fazla yazamıyorum ama gerçekten bu forumdan çok fazla faydalandığımı söyliyebilirim.
<br />Özellikle, geçtiğimiz hafta içinde &quot;set tablevalidate to&quot; ifadesini burada son anda bularak kullanmış olmam, &quot;hayat kurtardı&quot; ifadesini kullandıracak kadar işime yaradı diyebilirim. Forumdaki herkese teşekkürlerimi sunuyorum. 
</p><p>Program üzerinden gmail ile mail gönderme uzun süredir düşündüğüm bir uygulama idi. Ancak yukarıdaki uygulamayı başaramadım, belki çok basit bir şeyi gözden kaçırıyorum ama yukarıdaki kodu nasıl çalıştırabileceğimi biraz daha açıklarsan sevineceğim..</p>]]></content>
			<author>
				<name><![CDATA[hdursun]]></name>
				<uri>http://www.fox4um.com/user/9/</uri>
			</author>
			<updated>2008-10-22T18:02:57Z</updated>
			<id>http://www.fox4um.com/post/6883/#p6883</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Gmail hesabı ile mail gonderme]]></title>
			<link rel="alternate" href="http://www.fox4um.com/post/6862/#p6862"/>
			<content type="html"><![CDATA[<div class="codebox"><div class="head">Visual Fox Pro</div><table class="visualfoxpro fxcode"><tbody><tr class="li1"><td class="ln"><pre class="de1">1
<br />2
<br />3
<br />4
<br />5
<br />6
<br />7
<br />8
<br />9
<br />10
<br />11
<br />12
<br />13
<br />14
<br />15
<br />16
<br />17
<br />18
<br />19
<br />20
<br />21
<br />22
<br />23
<br />24
<br />25
<br />26
<br />27
<br />28
<br />29
<br />30
<br />31
<br />32
<br />33
<br /></pre></td><td class="de1"><pre class="de1"><span class="sy0">&amp;&amp;</span> <span class="kw2">Replace</span> addresses <span class="kw1">with</span> real ones <span class="kw2">before</span> running the code
<br />&nbsp;
<br />loMail <span class="sy0">=</span> <span class="kw3">NEWOBJECT</span><span class="br0">&#40;</span><span class="st0">&quot;Cdo2000&quot;</span><span class="sy0">,</span> <span class="st0">&quot;Cdo2000.prg&quot;</span><span class="br0">&#41;</span>
<br />&nbsp;
<br /><span class="kw1">WITH</span> loMail
<br />&nbsp; &nbsp; <span class="sy0">.</span><span class="me1">cServer</span> <span class="sy0">=</span> <span class="st0">&quot;smtp.gmail.com&quot;</span>
<br />&nbsp; &nbsp; <span class="sy0">.</span><span class="me1">nServerPort</span> <span class="sy0">=</span> <span class="nu0">465</span>
<br />&nbsp; &nbsp; <span class="sy0">.</span><span class="me1">lUseSSL</span> <span class="sy0">=</span> <span class="sy0">.</span><span class="kw3">T</span><span class="sy0">.</span>
<br />&nbsp;
<br />&nbsp; &nbsp; <span class="sy0">.</span><span class="me1">nAuthenticate</span> <span class="sy0">=</span> <span class="nu0">1</span> &nbsp;<span class="sy0">&amp;&amp;</span> cdoBasic
<br />&nbsp; &nbsp; <span class="sy0">.</span><span class="me1">cUserName</span> <span class="sy0">=</span> <span class="st0">&quot;yourGmailAccount@gmail.com&quot;</span>
<br />&nbsp; &nbsp; <span class="sy0">.</span><span class="me1">cPassword</span> <span class="sy0">=</span> <span class="st0">&quot;yourGmailPassword&quot;</span>
<br />&nbsp;
<br />&nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> <span class="kw1">If</span> <span class="kw2">From</span> address doesn'<span class="kw3">t</span> match <span class="kw2">any</span> <span class="kw3">of</span> registered identities<span class="sy0">,</span> 
<br />&nbsp; &nbsp; <span class="sy0">&amp;&amp;</span>&nbsp; Gmail will <span class="kw2">replace</span> it <span class="kw1">with</span> your <span class="kw3">default</span> Gmail address
<br />&nbsp; &nbsp; <span class="sy0">.</span><span class="me1">cFrom</span> <span class="sy0">=</span> <span class="st0">&quot;yourGmailAccount@gmail.com&quot;</span>
<br />&nbsp;
<br />&nbsp; &nbsp; <span class="sy0">.</span><span class="me1">cTo</span> <span class="sy0">=</span> <span class="st0">&quot;somenody@otherdomain.com, somenodyelse@otherdomain.com&quot;</span>
<br />&nbsp;
<br />&nbsp; &nbsp; <span class="sy0">.</span><span class="me1">cSubject</span> <span class="sy0">=</span> <span class="st0">&quot;CDO 2000 email through Gmail SMTP server&quot;</span>
<br />&nbsp;
<br />&nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> Uncomment <span class="kw1">next</span> lines <span class="kw3">to</span> send HTML body
<br />&nbsp; &nbsp; <span class="sy0">&amp;&amp;.</span><span class="me1">cHtmlBody</span> <span class="sy0">=</span> <span class="st0">&quot;&lt;html&gt;&lt;body&gt;&lt;b&gt;This is an HTML body&lt;br&gt;&quot;</span> <span class="sy0">+</span> <span class="sy0">;</span>
<br />&nbsp; &nbsp; <span class="sy0">&amp;&amp;</span>&nbsp; &nbsp; &nbsp; <span class="st0">&quot;It'll be displayed by most email clients&lt;/b&gt;&lt;/body&gt;&lt;/html&gt;&quot;</span> &nbsp; &nbsp;
<br />&nbsp;
<br />&nbsp; &nbsp; <span class="sy0">.</span><span class="me1">cTextBody</span> <span class="sy0">=</span> <span class="st0">&quot;This is a text body.&quot;</span> <span class="sy0">+</span> <span class="kw1">CHR</span><span class="br0">&#40;</span><span class="nu0">13</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="kw1">CHR</span><span class="br0">&#40;</span><span class="nu0">10</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="sy0">;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;It'll be displayed if HTML body is not present or by text only email clients&quot;</span>
<br />&nbsp;
<br />&nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> Attachments are optional
<br />&nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> <span class="sy0">.</span><span class="me1">cAttachment</span> <span class="sy0">=</span> <span class="st0">&quot;myreport.pdf, myspreadsheet.xls&quot;</span>
<br /><span class="kw1">ENDWITH</span>
<br />&nbsp;
<br /><span class="sy0">?</span> <span class="kw1">IIF</span><span class="br0">&#40;</span> loMail<span class="sy0">.</span><span class="me1">Send</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">&gt;</span> <span class="nu0">0</span><span class="sy0">,</span> loMail<span class="sy0">.</span><span class="me1">Geterror</span><span class="br0">&#40;</span><span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="st0">&quot;Email sent.&quot;</span><span class="br0">&#41;</span></pre></td></tr></tbody></table></div><p>
</p><p>asagidaki kodlarida cdo2000.prg adiyla kaydedin
</p><div class="codebox"><div class="head">Visual Fox Pro</div><table class="visualfoxpro fxcode"><tbody><tr class="li1"><td class="ln"><pre class="de1">1
<br />2
<br />3
<br />4
<br />5
<br />6
<br />7
<br />8
<br />9
<br />10
<br />11
<br />12
<br />13
<br />14
<br />15
<br />16
<br />17
<br />18
<br />19
<br />20
<br />21
<br />22
<br />23
<br />24
<br />25
<br />26
<br />27
<br />28
<br />29
<br />30
<br />31
<br />32
<br />33
<br />34
<br />35
<br />36
<br />37
<br />38
<br />39
<br />40
<br />41
<br />42
<br />43
<br />44
<br />45
<br />46
<br />47
<br />48
<br />49
<br />50
<br />51
<br />52
<br />53
<br />54
<br />55
<br />56
<br />57
<br />58
<br />59
<br />60
<br />61
<br />62
<br />63
<br />64
<br />65
<br />66
<br />67
<br />68
<br />69
<br />70
<br />71
<br />72
<br />73
<br />74
<br />75
<br />76
<br />77
<br />78
<br />79
<br />80
<br />81
<br />82
<br />83
<br />84
<br />85
<br />86
<br />87
<br />88
<br />89
<br />90
<br />91
<br />92
<br />93
<br />94
<br />95
<br />96
<br />97
<br />98
<br />99
<br />100
<br />101
<br />102
<br />103
<br />104
<br />105
<br />106
<br />107
<br />108
<br />109
<br />110
<br />111
<br />112
<br />113
<br />114
<br />115
<br />116
<br />117
<br />118
<br />119
<br />120
<br />121
<br />122
<br />123
<br />124
<br />125
<br />126
<br />127
<br />128
<br />129
<br />130
<br />131
<br />132
<br />133
<br />134
<br />135
<br />136
<br />137
<br />138
<br />139
<br />140
<br />141
<br />142
<br />143
<br />144
<br />145
<br />146
<br />147
<br />148
<br />149
<br />150
<br />151
<br />152
<br />153
<br />154
<br />155
<br />156
<br />157
<br />158
<br />159
<br />160
<br />161
<br />162
<br />163
<br />164
<br />165
<br />166
<br />167
<br />168
<br />169
<br />170
<br />171
<br />172
<br />173
<br />174
<br />175
<br />176
<br />177
<br />178
<br />179
<br />180
<br />181
<br />182
<br />183
<br />184
<br />185
<br />186
<br />187
<br />188
<br />189
<br />190
<br />191
<br />192
<br />193
<br />194
<br />195
<br />196
<br />197
<br />198
<br />199
<br />200
<br />201
<br />202
<br />203
<br />204
<br />205
<br />206
<br />207
<br />208
<br />209
<br />210
<br />211
<br />212
<br />213
<br />214
<br />215
<br />216
<br />217
<br />218
<br />219
<br />220
<br />221
<br />222
<br />223
<br />224
<br />225
<br />226
<br />227
<br />228
<br />229
<br />230
<br />231
<br />232
<br />233
<br />234
<br />235
<br />236
<br />237
<br />238
<br />239
<br />240
<br />241
<br />242
<br />243
<br />244
<br />245
<br />246
<br />247
<br />248
<br />249
<br />250
<br />251
<br />252
<br />253
<br />254
<br />255
<br />256
<br />257
<br />258
<br />259
<br />260
<br />261
<br />262
<br />263
<br />264
<br /></pre></td><td class="de1"><pre class="de1"><span class="sy0">&amp;&amp;</span> cdo2000<span class="sy0">.</span><span class="me1">prg</span>
<br />&nbsp;
<br /><span class="kw1">#DEFINE</span> cdoSendUsingMethod <span class="st0">&quot;<a href="http://schemas.microsoft.com/cdo/configuration/sendusing">http://schemas.microsoft.com/cdo/config &#133; /sendusing</a>&quot;</span>
<br /><span class="kw1">#DEFINE</span> cdoSendPassword <span class="st0">&quot;<a href="http://schemas.microsoft.com/cdo/configuration/sendpassword">http://schemas.microsoft.com/cdo/config &#133; ndpassword</a>&quot;</span>
<br /><span class="kw1">#DEFINE</span> cdoSendUserName <span class="st0">&quot;<a href="http://schemas.microsoft.com/cdo/configuration/sendusername">http://schemas.microsoft.com/cdo/config &#133; ndusername</a>&quot;</span>
<br /><span class="kw1">#DEFINE</span> cdoSendUsingMethod <span class="st0">&quot;<a href="http://schemas.microsoft.com/cdo/configuration/sendusing">http://schemas.microsoft.com/cdo/config &#133; /sendusing</a>&quot;</span>
<br /><span class="kw1">#DEFINE</span> cdoSMTPAuthenticate <span class="st0">&quot;<a href="http://schemas.microsoft.com/cdo/configuration/smtpauthenticate">http://schemas.microsoft.com/cdo/config &#133; thenticate</a>&quot;</span>
<br /><span class="kw1">#DEFINE</span> cdoSMTPConnectionTimeout <span class="st0">&quot;<a href="http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout">http://schemas.microsoft.com/cdo/config &#133; iontimeout</a>&quot;</span>
<br /><span class="kw1">#DEFINE</span> cdoSMTPServer <span class="st0">&quot;<a href="http://schemas.microsoft.com/cdo/configuration/smtpserver">http://schemas.microsoft.com/cdo/config &#133; smtpserver</a>&quot;</span>
<br /><span class="kw1">#DEFINE</span> cdoSMTPServerPort <span class="st0">&quot;<a href="http://schemas.microsoft.com/cdo/configuration/smtpserverport">http://schemas.microsoft.com/cdo/config &#133; serverport</a>&quot;</span>
<br /><span class="kw1">#DEFINE</span> cdoSMTPUseSSL <span class="st0">&quot;<a href="http://schemas.microsoft.com/cdo/configuration/smtpusessl">http://schemas.microsoft.com/cdo/config &#133; smtpusessl</a>&quot;</span>
<br /><span class="kw1">#DEFINE</span> cdoURLGetLatestVersion <span class="st0">&quot;<a href="http://schemas.microsoft.com/cdo/configuration/urlgetlatestversion">http://schemas.microsoft.com/cdo/config &#133; estversion</a>&quot;</span>
<br /><span class="kw1">#DEFINE</span> cdoAnonymous <span class="nu0">0</span>&nbsp; <span class="sy0">&amp;&amp;</span> Perform no authentication <span class="br0">&#40;</span>anonymous<span class="br0">&#41;</span>
<br /><span class="kw1">#DEFINE</span> cdoBasic <span class="nu0">1</span>&nbsp; <span class="sy0">&amp;&amp;</span> <span class="kw2">Use</span> the basic <span class="br0">&#40;</span><span class="kw3">clear</span> <span class="kw1">text</span><span class="br0">&#41;</span> authentication mechanism<span class="sy0">.</span>
<br /><span class="kw1">#DEFINE</span> cdoSendUsingPort <span class="nu0">2</span>&nbsp; <span class="sy0">&amp;&amp;</span> Send the <span class="kw3">message</span> using the SMTP protocol over the <span class="kw2">network</span><span class="sy0">.</span>
<br /><span class="kw1">#DEFINE</span> cdoXMailer <span class="st0">&quot;urn:schemas:mailheader:x-mailer&quot;</span>
<br />&nbsp;
<br /><span class="kw1">DEFINE</span> <span class="kw3">CLASS</span> cdo2000 <span class="kw2">AS</span> <span class="kw4">Custom</span>
<br />&nbsp;
<br />&nbsp; &nbsp; <span class="kw1">PROTECTED</span> oErrors 
<br />&nbsp; &nbsp; oErrors <span class="sy0">=</span> <span class="kw3">Null</span>
<br />&nbsp;
<br />&nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> <span class="kw3">Message</span> <span class="kw2">attributes</span>
<br />&nbsp; &nbsp; <span class="kw1">PROTECTED</span> oMsg
<br />&nbsp; &nbsp; oMsg <span class="sy0">=</span> <span class="kw3">Null</span>
<br />&nbsp; &nbsp; cFrom <span class="sy0">=</span> <span class="st0">&quot;&quot;</span>
<br />&nbsp; &nbsp; cReplyTo <span class="sy0">=</span> <span class="st0">&quot;&quot;</span>
<br />&nbsp; &nbsp; cTo <span class="sy0">=</span> <span class="st0">&quot;&quot;</span>
<br />&nbsp; &nbsp; cCC <span class="sy0">=</span> <span class="st0">&quot;&quot;</span>
<br />&nbsp; &nbsp; cBCC <span class="sy0">=</span> <span class="st0">&quot;&quot;</span>
<br />&nbsp; &nbsp; cAttachment <span class="sy0">=</span> <span class="st0">&quot;&quot;</span>
<br />&nbsp;
<br />&nbsp; &nbsp; cSubject <span class="sy0">=</span> <span class="st0">&quot;&quot;</span>
<br />&nbsp; &nbsp; cHtmlBody <span class="sy0">=</span> <span class="st0">&quot;&quot;</span>
<br />&nbsp; &nbsp; cTextBody <span class="sy0">=</span> <span class="st0">&quot;&quot;</span>
<br />&nbsp; &nbsp; cHtmlBodyUrl <span class="sy0">=</span> <span class="st0">&quot;&quot;</span>
<br />&nbsp;
<br />&nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> Configuration object <span class="kw2">fields</span> <span class="kw3">values</span>
<br />&nbsp; &nbsp; <span class="kw1">PROTECTED</span> oCfg
<br />&nbsp; &nbsp; oCfg <span class="sy0">=</span> <span class="kw3">Null</span>
<br />&nbsp; &nbsp; cServer <span class="sy0">=</span> <span class="st0">&quot;&quot;</span>
<br />&nbsp; &nbsp; nServerPort <span class="sy0">=</span> <span class="nu0">25</span>
<br />&nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> <span class="kw2">Use</span> SSL <span class="kw2">connection</span>
<br />&nbsp; &nbsp; lUseSSL <span class="sy0">=</span> <span class="sy0">.</span><span class="kw2">F</span><span class="sy0">.</span>
<br />&nbsp; &nbsp; <span class="me1">nConnectionTimeout</span> <span class="sy0">=</span> <span class="nu0">30</span> &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> <span class="kw3">Default</span> <span class="nu0">30</span> <span class="kw2">sec</span>'s
<br />&nbsp; &nbsp; nAuthenticate <span class="sy0">=</span> cdoAnonymous
<br />&nbsp; &nbsp; cUserName <span class="sy0">=</span> <span class="st0">&quot;&quot;</span>
<br />&nbsp; &nbsp; cPassword <span class="sy0">=</span> <span class="st0">&quot;&quot;</span>
<br />&nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> <span class="kw1">Do</span> <span class="kw3">not</span> <span class="kw2">use</span> cache <span class="kw1">for</span> cHtmlBodyUrl
<br />&nbsp; &nbsp; lURLGetLatestVersion <span class="sy0">=</span> <span class="sy0">.</span><span class="kw3">T</span><span class="sy0">.</span>
<br />&nbsp;
<br />&nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> Optional<span class="sy0">.</span> <span class="me1">Creates</span> your own X<span class="sy0">-</span>MAILER <span class="kw2">field</span> <span class="kw2">in</span> the <span class="kw4">header</span>
<br />&nbsp; &nbsp; <span class="kw1">PROTECTED</span> cXMailer
<br />&nbsp; &nbsp; cXMailer <span class="sy0">=</span> <span class="st0">&quot;VFP CDO 2000(CDOSYS) mailer Ver 1.0 2008&quot;</span>
<br />&nbsp;
<br />&nbsp; &nbsp; <span class="kw1">PROTECTED</span> <span class="kw1">PROCEDURE</span> <span class="kw3">Init</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> <span class="kw1">Create</span> <span class="kw3">error</span> collection
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">This</span><span class="sy0">.</span><span class="me1">oErrors</span> <span class="sy0">=</span> <span class="kw1">CREATEOBJECT</span><span class="br0">&#40;</span><span class="st0">&quot;Collection&quot;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; <span class="kw1">ENDPROC</span>
<br />&nbsp;
<br />&nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> Send <span class="kw3">message</span>
<br />&nbsp; &nbsp; <span class="kw1">PROCEDURE</span> Send
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">WITH</span> <span class="kw2">This</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="me1">ClearErrors</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="me1">oCfg</span> <span class="sy0">=</span> <span class="kw1">CREATEOBJECT</span><span class="br0">&#40;</span><span class="st0">&quot;CDO.Configuration&quot;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="me1">oMsg</span> <span class="sy0">=</span> <span class="kw1">CREATEOBJECT</span><span class="br0">&#40;</span><span class="st0">&quot;CDO.Message&quot;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="me1">oMsg</span><span class="sy0">.</span><span class="me1">Configuration</span> <span class="sy0">=</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">oCfg</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDWITH</span> &nbsp; &nbsp; 
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> <span class="kw2">Fill</span> <span class="kw3">message</span> <span class="kw2">attributes</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">LOCAL</span> lnind<span class="sy0">,</span> laList<span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="sy0">,</span> loHeader<span class="sy0">,</span> laDummy<span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span>
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">IF</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">SetConfiguration</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">&gt;</span> <span class="nu0">0</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">RETURN</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">GetErrorCount</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDIF</span>
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">IF</span> <span class="kw4">EMPTY</span><span class="br0">&#40;</span><span class="kw2">This</span><span class="sy0">.</span><span class="me1">cFrom</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">This</span><span class="sy0">.</span><span class="me1">AddError</span><span class="br0">&#40;</span><span class="st0">&quot;ERROR : From is Empty.&quot;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDIF</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">IF</span> <span class="kw4">EMPTY</span><span class="br0">&#40;</span><span class="kw2">This</span><span class="sy0">.</span><span class="me1">cSubject</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">This</span><span class="sy0">.</span><span class="me1">AddError</span><span class="br0">&#40;</span><span class="st0">&quot;ERROR : Subject is Empty.&quot;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDIF</span>
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">IF</span> <span class="kw4">EMPTY</span><span class="br0">&#40;</span><span class="kw2">This</span><span class="sy0">.</span><span class="me1">cTo</span><span class="br0">&#41;</span> <span class="kw2">AND</span> <span class="kw4">EMPTY</span><span class="br0">&#40;</span><span class="kw2">This</span><span class="sy0">.</span><span class="me1">cCC</span><span class="br0">&#41;</span> <span class="kw2">AND</span> <span class="kw4">EMPTY</span><span class="br0">&#40;</span>cBCC<span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">This</span><span class="sy0">.</span><span class="me1">AddError</span><span class="br0">&#40;</span><span class="st0">&quot;ERROR : To,CC and BCC all are Empty.&quot;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDIF</span>
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">IF</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">GetErrorCount</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">&gt;</span> <span class="nu0">0</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">RETURN</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">GetErrorCount</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDIF</span>
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">This</span><span class="sy0">.</span><span class="me1">SetHeader</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">WITH</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">oMsg</span>
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="kw2">From</span> &nbsp; &nbsp; <span class="sy0">=</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">cFrom</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="me1">ReplyTo</span> &nbsp;<span class="sy0">=</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">cReplyTo</span>
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="kw3">To</span> &nbsp; &nbsp; &nbsp; <span class="sy0">=</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">cTo</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="me1">CC</span> &nbsp; &nbsp; &nbsp; <span class="sy0">=</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">cCC</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="me1">BCC</span> &nbsp; &nbsp; &nbsp;<span class="sy0">=</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">cBCC</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="me1">Subject</span> &nbsp;<span class="sy0">=</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">cSubject</span>
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> <span class="kw1">Create</span> HTML body <span class="kw2">from</span> <span class="kw1">external</span> HTML <span class="br0">&#40;</span><span class="kw2">file</span><span class="sy0">,</span> URL<span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">IF</span> <span class="kw3">NOT</span> <span class="kw4">EMPTY</span><span class="br0">&#40;</span><span class="kw2">This</span><span class="sy0">.</span><span class="me1">cHtmlBodyUrl</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="me1">CreateMHTMLBody</span><span class="br0">&#40;</span><span class="kw2">This</span><span class="sy0">.</span><span class="me1">cHtmlBodyUrl</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDIF</span>
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> Send HTML body<span class="sy0">.</span> <span class="me1">Creates</span> TextBody <span class="kw2">as</span> well
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">IF</span> <span class="kw3">NOT</span> <span class="kw4">EMPTY</span><span class="br0">&#40;</span><span class="kw2">This</span><span class="sy0">.</span><span class="me1">cHtmlBody</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="me1">HtmlBody</span> <span class="sy0">=</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">cHtmlBody</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDIF</span>
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> Send <span class="kw1">Text</span> body<span class="sy0">.</span> <span class="me1">Could</span> be different <span class="kw2">from</span> HtmlBody<span class="sy0">,</span> <span class="kw1">if</span> <span class="kw2">any</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">IF</span> <span class="kw3">NOT</span> <span class="kw4">EMPTY</span><span class="br0">&#40;</span><span class="kw2">This</span><span class="sy0">.</span><span class="me1">cTextBody</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="me1">TextBody</span> <span class="sy0">=</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">cTextBody</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDIF</span>
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> Process attachments
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">IF</span> <span class="kw3">NOT</span> <span class="kw4">EMPTY</span><span class="br0">&#40;</span><span class="kw2">This</span><span class="sy0">.</span><span class="me1">cAttachment</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> Accepts comma<span class="sy0">,</span> semicolon 
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">FOR</span> lnind<span class="sy0">=</span><span class="nu0">1</span> <span class="kw3">TO</span> <span class="kw1">ALINES</span><span class="br0">&#40;</span>laList<span class="sy0">,</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">cAttachment</span><span class="sy0">,</span> <span class="br0">&#91;</span><span class="sy0">,</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="br0">&#91;</span><span class="sy0">;</span><span class="br0">&#93;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; lcAttachment <span class="sy0">=</span> <span class="kw1">ALLTRIM</span><span class="br0">&#40;</span>laList<span class="br0">&#91;</span>lnind<span class="br0">&#93;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> Ignore <span class="kw4">empty</span> <span class="kw3">values</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">IF</span> <span class="kw4">EMPTY</span><span class="br0">&#40;</span>laList<span class="br0">&#91;</span>lnind<span class="br0">&#93;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">LOOP</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDIF</span>
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> Make sure that attachment <span class="kw2">exists</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">IF</span> <span class="kw1">ADIR</span><span class="br0">&#40;</span>laDummy<span class="sy0">,</span> lcAttachment<span class="br0">&#41;</span> <span class="sy0">=</span> <span class="nu0">0</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">This</span><span class="sy0">.</span><span class="me1">AddError</span><span class="br0">&#40;</span><span class="st0">&quot;ERROR: Attacment not Found - &quot;</span> <span class="sy0">+</span> lcAttachment<span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ELSE</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> The full <span class="kw3">path</span> <span class="kw2">is</span> required<span class="sy0">.</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">IF</span> &nbsp;<span class="kw2">UPPER</span><span class="br0">&#40;</span>lcAttachment<span class="br0">&#41;</span> <span class="sy0">&lt;&gt;</span> <span class="kw2">UPPER</span><span class="br0">&#40;</span><span class="kw2">FULLPATH</span><span class="br0">&#40;</span>lcAttachment<span class="br0">&#41;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; lcAttachment <span class="sy0">=</span> <span class="kw2">FULLPATH</span><span class="br0">&#40;</span>lcAttachment<span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDIF</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="me1">AddAttachment</span><span class="br0">&#40;</span>lcAttachment<span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDIF</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDFOR</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDIF</span>
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDWITH</span>
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">IF</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">GetErrorCount</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">&gt;</span> <span class="nu0">0</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">RETURN</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">GetErrorCount</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDIF</span>
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; TRY
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">This</span><span class="sy0">.</span><span class="me1">oMsg</span><span class="sy0">.</span><span class="me1">Send</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; CATCH <span class="kw3">TO</span> oErr
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">This</span><span class="sy0">.</span><span class="me1">AddOneError</span><span class="br0">&#40;</span><span class="st0">&quot;SEND ERROR: &quot;</span><span class="sy0">,</span> oErr<span class="sy0">.</span><span class="me1">ErrorNo</span><span class="sy0">,</span> oErr<span class="sy0">.</span><span class="kw1">procedure</span><span class="sy0">,</span> oErr<span class="sy0">.</span><span class="kw2">LineNo</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; ENDTRY
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">RETURN</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">GetErrorCount</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
<br />&nbsp;
<br />&nbsp; &nbsp; <span class="kw1">ENDPROC</span>
<br />&nbsp;
<br />&nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> <span class="kw3">Clear</span> <span class="kw3">error</span> collection
<br />&nbsp; &nbsp; <span class="kw1">PROCEDURE</span> ClearErrors<span class="br0">&#40;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">RETURN</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">oErrors</span><span class="sy0">.</span><span class="kw2">Remove</span><span class="br0">&#40;</span><span class="sy0">-</span><span class="nu0">1</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; <span class="kw1">ENDPROC</span>
<br />&nbsp;
<br />&nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> <span class="kw2">Return</span> # <span class="kw3">of</span> errors <span class="kw2">in</span> the <span class="kw3">error</span> collection
<br />&nbsp; &nbsp; <span class="kw1">PROCEDURE</span> GetErrorCount
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">RETURN</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">oErrors</span><span class="sy0">.</span><span class="kw1">Count</span>
<br />&nbsp; &nbsp; <span class="kw1">ENDPROC</span>
<br />&nbsp;
<br />&nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> <span class="kw2">Return</span> <span class="kw3">error</span> <span class="kw2">by</span> <span class="kw1">index</span>
<br />&nbsp; &nbsp; <span class="kw1">PROCEDURE</span> GetError<span class="br0">&#40;</span>tnErrorno<span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">IF</span>&nbsp; tnErrorno <span class="sy0">&lt;=</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">GetErrorCount</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">RETURN</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">oErrors</span><span class="sy0">.</span><span class="kw3">Item</span><span class="br0">&#40;</span>tnErrorno<span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ELSE</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">RETURN</span> <span class="kw3">Null</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDIF</span>
<br />&nbsp; &nbsp; <span class="kw1">ENDPROC</span>
<br />&nbsp;
<br />&nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> Populate configuration object
<br />&nbsp; &nbsp; <span class="kw1">PROTECTED</span> <span class="kw1">PROCEDURE</span> SetConfiguration
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> <span class="kw2">Validate</span> supplied configuration <span class="kw3">values</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">IF</span> <span class="kw4">EMPTY</span><span class="br0">&#40;</span><span class="kw2">This</span><span class="sy0">.</span><span class="me1">cServer</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">This</span><span class="sy0">.</span><span class="me1">AddError</span><span class="br0">&#40;</span><span class="st0">&quot;ERROR: SMTP Server isn't specified.&quot;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDIF</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">IF</span> <span class="kw3">NOT</span> <span class="kw1">INLIST</span><span class="br0">&#40;</span><span class="kw2">This</span><span class="sy0">.</span><span class="me1">nAuthenticate</span><span class="sy0">,</span> cdoAnonymous<span class="sy0">,</span> cdoBasic<span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">This</span><span class="sy0">.</span><span class="me1">AddError</span><span class="br0">&#40;</span><span class="st0">&quot;ERROR: Invalid Authentication protocol &quot;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDIF</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">IF</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">nAuthenticate</span> <span class="sy0">=</span> cdoBasic <span class="sy0">;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">AND</span> <span class="br0">&#40;</span><span class="kw4">EMPTY</span><span class="br0">&#40;</span><span class="kw2">This</span><span class="sy0">.</span><span class="me1">cUserName</span><span class="br0">&#41;</span> <span class="kw3">OR</span> <span class="kw4">EMPTY</span><span class="br0">&#40;</span><span class="kw2">This</span><span class="sy0">.</span><span class="me1">cPassword</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">This</span><span class="sy0">.</span><span class="me1">AddError</span><span class="br0">&#40;</span><span class="st0">&quot;ERROR: User name/Password is required for basic authentication&quot;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDIF</span>
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">IF</span> &nbsp;<span class="kw2">This</span><span class="sy0">.</span><span class="me1">GetErrorCount</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">&gt;</span> <span class="nu0">0</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">RETURN</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">GetErrorCount</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDIF</span>
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">WITH</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">oCfg</span><span class="sy0">.</span><span class="kw2">Fields</span>
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> Send using SMTP server
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="kw3">Item</span><span class="br0">&#40;</span>cdoSendUsingMethod<span class="br0">&#41;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">=</span> cdoSendUsingPort
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="kw3">Item</span><span class="br0">&#40;</span>cdoSMTPServer<span class="br0">&#41;</span> &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">=</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">cServer</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="kw3">Item</span><span class="br0">&#40;</span>cdoSMTPServerPort<span class="br0">&#41;</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">=</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">nServerPort</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="kw3">Item</span><span class="br0">&#40;</span>cdoSMTPConnectionTimeout<span class="br0">&#41;</span> &nbsp; &nbsp; <span class="sy0">=</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">nConnectionTimeout</span>
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="kw3">Item</span><span class="br0">&#40;</span>cdoSMTPAuthenticate<span class="br0">&#41;</span> &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">=</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">nAuthenticate</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">IF</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">nAuthenticate</span> <span class="sy0">=</span> cdoBasic
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="kw3">Item</span><span class="br0">&#40;</span>cdoSendUserName<span class="br0">&#41;</span> &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; <span class="sy0">=</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">cUserName</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="kw3">Item</span><span class="br0">&#40;</span>cdoSendPassword<span class="br0">&#41;</span> &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; <span class="sy0">=</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">cPassword</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDIF</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="kw3">Item</span><span class="br0">&#40;</span>cdoURLGetLatestVersion<span class="br0">&#41;</span> &nbsp; &nbsp; &nbsp; <span class="sy0">=</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">lURLGetLatestVersion</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="kw3">Item</span><span class="br0">&#40;</span>cdoSMTPUseSSL<span class="br0">&#41;</span> &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">=</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">lUseSSL</span>
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="kw2">Update</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDWITH</span>
<br />&nbsp;
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">RETURN</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">GetErrorCount</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
<br />&nbsp;
<br />&nbsp; &nbsp; <span class="kw1">ENDPROC</span>
<br />&nbsp;
<br />&nbsp; &nbsp; <span class="sy0">&amp;&amp;----------------------------------------------------</span>
<br />&nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> <span class="kw3">Add</span> <span class="kw3">message</span> <span class="kw3">to</span> the <span class="kw3">error</span> collection
<br />&nbsp; &nbsp; <span class="kw1">PROTECTED</span> <span class="kw1">PROCEDURE</span> AddError<span class="br0">&#40;</span>tcErrorMsg<span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">RETURN</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">oErrors</span><span class="sy0">.</span><span class="kw3">Add</span><span class="br0">&#40;</span>tcErrorMsg<span class="br0">&#41;</span>
<br />&nbsp; &nbsp; <span class="kw1">ENDPROC</span>
<br />&nbsp;
<br />&nbsp; &nbsp; <span class="sy0">&amp;&amp;----------------------------------------------------</span>
<br />&nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> <span class="kw3">Format</span> an <span class="kw3">error</span> <span class="kw3">message</span> <span class="kw2">and</span> <span class="kw3">add</span> <span class="kw3">to</span> the <span class="kw3">error</span> collection
<br />&nbsp; &nbsp; <span class="kw1">PROTECTED</span> <span class="kw1">PROCEDURE</span> AddOneError<span class="br0">&#40;</span>tcPrefix<span class="sy0">,</span> tnError<span class="sy0">,</span> tcMethod<span class="sy0">,</span> tnLine <span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">LOCAL</span> lcErrorMsg<span class="sy0">,</span> laList<span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">IF</span> <span class="kw1">INLIST</span><span class="br0">&#40;</span>tnError<span class="sy0">,</span> <span class="nu0">1427</span><span class="sy0">,</span><span class="nu0">1429</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">AERROR</span><span class="br0">&#40;</span>laList<span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; lcErrorMsg <span class="sy0">=</span> <span class="kw2">TRANSFORM</span><span class="br0">&#40;</span>laList<span class="br0">&#91;</span><span class="nu0">7</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="st0">&quot;@0&quot;</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="sy0">;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot; &nbsp;&quot;</span> <span class="sy0">+</span> laList<span class="br0">&#91;</span><span class="nu0">4</span><span class="br0">&#93;</span> &nbsp;<span class="sy0">+</span> <span class="st0">&quot; &nbsp;&quot;</span> <span class="sy0">+</span> laList<span class="br0">&#91;</span><span class="nu0">3</span><span class="br0">&#93;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ELSE</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; lcErrorMsg <span class="sy0">=</span> <span class="kw3">MESSAGE</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDIF</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">This</span><span class="sy0">.</span><span class="me1">AddError</span><span class="br0">&#40;</span>tcPrefix <span class="sy0">+</span> <span class="st0">&quot;:&quot;</span> <span class="sy0">+</span> <span class="kw2">TRANSFORM</span><span class="br0">&#40;</span>tnError<span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">&quot; # &quot;</span> <span class="sy0">+</span> <span class="sy0">;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tcMethod <span class="sy0">+</span> <span class="st0">&quot; # &quot;</span> <span class="sy0">+</span> <span class="kw2">TRANSFORM</span><span class="br0">&#40;</span>tnLine<span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">&quot; # &quot;</span> <span class="sy0">+</span> lcErrorMsg<span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">RETURN</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">oErrors</span><span class="sy0">.</span><span class="kw1">Count</span>
<br />&nbsp; &nbsp; <span class="kw1">ENDPROC</span>
<br />&nbsp;
<br />&nbsp; &nbsp; <span class="sy0">&amp;&amp;----------------------------------------------------</span>
<br />&nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> Simple <span class="kw3">Error</span> handler<span class="sy0">.</span> <span class="me1">Adds</span> VFP <span class="kw3">error</span> <span class="kw3">to</span> the <span class="kw3">objects</span> <span class="kw3">error</span> collection
<br />&nbsp; &nbsp; <span class="kw1">PROTECTED</span> <span class="kw1">PROCEDURE</span> <span class="kw3">Error</span><span class="br0">&#40;</span>tnError<span class="sy0">,</span> tcMethod<span class="sy0">,</span> tnLine<span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&amp;&amp;!*</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">This</span><span class="sy0">.</span><span class="me1">AddError</span><span class="br0">&#40;</span><span class="st0">&quot;VFP Error: &quot;</span> <span class="sy0">+</span> <span class="kw2">TRANSFORM</span><span class="br0">&#40;</span>tnError<span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">&quot; # &quot;</span> <span class="sy0">+</span> <span class="sy0">;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&amp;&amp;!*</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tcMethod <span class="sy0">+</span> <span class="st0">&quot; # &quot;</span> <span class="sy0">+</span> <span class="kw2">TRANSFORM</span><span class="br0">&#40;</span>tnLine<span class="br0">&#41;</span> <span class="sy0">+</span> <span class="st0">&quot; # &quot;</span> <span class="sy0">+</span> <span class="kw3">MESSAGE</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">This</span><span class="sy0">.</span><span class="me1">AddOneError</span><span class="br0">&#40;</span><span class="st0">&quot;ERROR: &quot;</span><span class="sy0">,</span> tnError<span class="sy0">,</span> tcMethod<span class="sy0">,</span> tnLine <span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">RETURN</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">oErrors</span><span class="sy0">.</span><span class="kw1">Count</span>
<br />&nbsp; &nbsp; <span class="kw1">ENDPROC</span>
<br />&nbsp;
<br />&nbsp; &nbsp; <span class="sy0">&amp;&amp;-------------------------------------------------------</span>
<br />&nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> <span class="kw2">Set</span> <span class="kw2">mail</span> <span class="kw4">header</span> <span class="kw2">fields</span><span class="sy0">,</span> <span class="kw1">if</span> necessary<span class="sy0">.</span> <span class="kw1">For</span> <span class="kw2">now</span> sets X<span class="sy0">-</span>MAILER<span class="sy0">,</span> <span class="kw1">if</span> specified
<br />&nbsp; &nbsp; <span class="kw1">PROTECTED</span> <span class="kw1">PROCEDURE</span> SetHeader
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">LOCAL</span> loHeader
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">IF</span> <span class="kw3">NOT</span> <span class="kw4">EMPTY</span><span class="br0">&#40;</span><span class="kw2">This</span><span class="sy0">.</span><span class="me1">cXMailer</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; loHeader <span class="sy0">=</span> <span class="kw2">This</span><span class="sy0">.</span><span class="me1">oMsg</span><span class="sy0">.</span><span class="kw2">Fields</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">WITH</span> loHeader
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="kw3">Item</span><span class="br0">&#40;</span>cdoXMailer<span class="br0">&#41;</span> <span class="sy0">=</span> &nbsp;<span class="kw2">This</span><span class="sy0">.</span><span class="me1">cXMailer</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">.</span><span class="kw2">Update</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDWITH</span>
<br />&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">ENDIF</span>
<br />&nbsp; &nbsp; <span class="kw1">ENDPROC</span>
<br />&nbsp;
<br /><span class="kw1">ENDDEFINE</span></pre></td></tr></tbody></table></div><p>
</p><p><strong>* Kaynak :&nbsp; Sergey Berezniker </strong></p>]]></content>
			<author>
				<name><![CDATA[soykanozcelik]]></name>
				<uri>http://www.fox4um.com/user/4/</uri>
			</author>
			<updated>2008-10-20T06:35:44Z</updated>
			<id>http://www.fox4um.com/post/6862/#p6862</id>
		</entry>
</feed>

