|
Отправка письма средствами TheBat! |
|
|
Для своего проекта я когда-то сделал очень полезную процедуру. Она создаёт письмо и закидывает его в папку OutBox почтовика TheBat!. Заодно вы научитесь производить запись файлов и запускать процесс. Писал я этот код для себя, поэтому в некоторых местах требует доработки. Во-первых, следует изменить имя ящика, куда мы закидываем письмо (у меня он называется "Main"). Во-вторых, нужно предварительно проверить, где лежит TheBat.exe.
Опс... Чуть не забыл: нужно ещё положить рядом с вашим exe файл с именем msg.tpl. Он приведён ниже. Это шаблон файла .msg, который будет импортирован в папку OutBox.
Процедура отправки письма:
Private Sub SendMess(ByVal Text As String, ByVal subject As String, ByVal Name As String, ByVal Email As String)
Dim tpl As String
Dim mess As String
Dim fs As IO.FileStream
Dim sr As IO.StreamReader
Dim sw As IO.StreamWriter
fs = New IO.FileStream(System.AppDomain.CurrentDomain.BaseDirectory & "msg.tpl", IO.FileMode.Open, IO.FileAccess.Read)
sr = New IO.StreamReader(fs, System.Text.Encoding.GetEncoding(1251))
tpl = sr.ReadToEnd()
mess = Replace(tpl, "[text]", Text)
mess = Replace(mess, "[subject]", subject)
mess = Replace(mess, "[now]", Now.ToString("r"))
mess = Replace(mess, "[to]", Name & " <" & Email & ">")
fs = New IO.FileStream("C:\ temp.msg", IO.FileMode.Create, IO.FileAccess.Write)
sw = New IO.StreamWriter(fs, System.Text.Encoding.GetEncoding(1251))
sw.Write(mess)
sw.Close()
fs.Close()
Process.Start("C:\Program files\The Bat!\thebat.exe", "/IMPORTF=""\\Main\Outbox"";FILE=C:\temp\temp.msg;READ") 'Здесь следует подправить путь к TheBat.exe и название почтового ящика
End Sub
Файл msg.tpl. Тут тоже следует кое-что подправить (поля From и Reply-To).
Date: [now]
From: Your name <vasya@pupkin.ru>
X-Mailer: MyProgram
Reply-To: Your name <vasya@pupkin.ru>
X-Priority: 3 (Normal)
To: [to]
Subject: [subject]
MIME-Version: 1.0
Content-Type: text/plain; charset=Windows-1251
Content-Transfer-Encoding: 8bit
[text]
|
|
|
|
|
|
|