<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Fox4um - Gmail hesabı ile mail gonderme]]></title>
		<link>http://www.fox4um.com/topic/1153/gmail-hesabi-ile-mail-gonderme/</link>
		<description><![CDATA[The most recent posts in Gmail hesabı ile mail gonderme.]]></description>
		<lastBuildDate>Thu, 23 Oct 2008 09:12:58 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Gmail hesabı ile mail gonderme]]></title>
			<link>http://www.fox4um.com/post/6895/#p6895</link>
			<description><![CDATA[<p>kodlari tekrar duzenledim ve test ettim calisiyor</p>]]></description>
			<author><![CDATA[dummy@example.com (soykanozcelik)]]></author>
			<pubDate>Thu, 23 Oct 2008 09:12:58 +0000</pubDate>
			<guid>http://www.fox4um.com/post/6895/#p6895</guid>
		</item>
		<item>
			<title><![CDATA[Re: Gmail hesabı ile mail gonderme]]></title>
			<link>http://www.fox4um.com/post/6894/#p6894</link>
			<description><![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>]]></description>
			<author><![CDATA[dummy@example.com (birol)]]></author>
			<pubDate>Thu, 23 Oct 2008 09:03:40 +0000</pubDate>
			<guid>http://www.fox4um.com/post/6894/#p6894</guid>
		</item>
		<item>
			<title><![CDATA[Re: Gmail hesabı ile mail gonderme]]></title>
			<link>http://www.fox4um.com/post/6893/#p6893</link>
			<description><![CDATA[<p>koda eklemeleri yaptim ancak test etmedim</p>]]></description>
			<author><![CDATA[dummy@example.com (soykanozcelik)]]></author>
			<pubDate>Thu, 23 Oct 2008 08:44:05 +0000</pubDate>
			<guid>http://www.fox4um.com/post/6893/#p6893</guid>
		</item>
		<item>
			<title><![CDATA[Re: Gmail hesabı ile mail gonderme]]></title>
			<link>http://www.fox4um.com/post/6883/#p6883</link>
			<description><![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>]]></description>
			<author><![CDATA[dummy@example.com (hdursun)]]></author>
			<pubDate>Wed, 22 Oct 2008 18:02:57 +0000</pubDate>
			<guid>http://www.fox4um.com/post/6883/#p6883</guid>
		</item>
		<item>
			<title><![CDATA[Gmail hesabı ile mail gonderme]]></title>
			<link>http://www.fox4um.com/post/6862/#p6862</link>
			<description><![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>]]></description>
			<author><![CDATA[dummy@example.com (soykanozcelik)]]></author>
			<pubDate>Mon, 20 Oct 2008 06:35:44 +0000</pubDate>
			<guid>http://www.fox4um.com/post/6862/#p6862</guid>
		</item>
	</channel>
</rss>

