(MVC) MVC (2014 год)

Поштові розсилки через Gmail.

Поштові розсилки через GMAIL За декілька минулих років у мене з'явився повністю новий фреймворк для роботи під ASP.NET MVC - замість ось цього фреймворку під ASP.NET, який я використовував з 2005-го року і опублікував у 2009-му році ось тут AspNet_UserManager - компонент сайта для управления пользователями і у трошки модифікованому вигляді для MySQL ось тут - Избавляемся от базы стандартных пользователей ASP.NET на MS SQL - пример ASP.NET сайта на MySQL.

Новий фреймворк під MVC я буду також потроху публікувати. На цієї сторінці я покажу, як робити поштові розсилки через GMAIL.

По-перше, у самому GMAIL потрібно зробити дві важливі налаштування:


  • Less Security
    Поштові розсилки через GMAIL
  • Unlock Captcha
    Поштові розсилки через GMAIL

По-друге, розсилки можно зробити тільки 99 листів на добу.


І ось новий код, який трохи відрізняється від кода, яким робиться звернення до звичайного почтовика.


   1:  Imports Microsoft.VisualBasic
   2:  Imports System, System.Web
   3:   
   4:  Public Class GMail
   5:      Public Shared Sub SendMail(ByVal ToAddr As String, ByVal Subject As String, ByVal Body As String)
   6:          Dim SendedMailID As Integer
   7:          Dim db1 As New OCMRDataContext
   8:          Dim Result = (db1.AddMail(ToAddr, Subject, Body)).ToList
   9:          SendedMailID = Result(0).MailId
  10:          Dim MailClient As New System.Net.Mail.SmtpClient()
  11:          Try
  12:              Dim Email As New System.Net.Mail.MailMessage(System.Configuration.ConfigurationManager.AppSettings("SMTP_FromAddr"), ToAddr, Subject, Body)
  13:              Email.IsBodyHtml = True           
  14:              MailClient.Host = System.Configuration.ConfigurationManager.AppSettings("SMTP_Server")
  15:              MailClient.Port = System.Configuration.ConfigurationManager.AppSettings("SMTP_Port")
  16:              MailClient.EnableSsl = CBool(System.Configuration.ConfigurationManager.AppSettings("SMTP_SSL"))
  17:              MailClient.DeliveryMethod = Net.Mail.SmtpDeliveryMethod.Network
  18:              MailClient.UseDefaultCredentials = True
  19:              MailClient.Credentials = New System.Net.NetworkCredential(System.Configuration.ConfigurationManager.AppSettings("SMTP_Login"), System.Configuration.ConfigurationManager.AppSettings("SMTP_Pass"))
  20:              MailClient.Send(Email)
  21:          Catch ex As Exception
  22:              Dim db2 As New OCMRDataContext
  23:              db2.AddMailError(SendedMailID, ex.Message)
  24:          End Try
  25:      End Sub
  26:  End Class

Цей код користуеться ось таким конфігом сайту:


   1:  <?xml version="1.0"?>
   2:  <configuration>
   3:    <appSettings>
   4:      <!-- Эти адреса нужны для отправки почты юзеру -->
   5:      <add key="SMTP_Login" value="[email protected]"/>
   6:      <add key="SMTP_Pass" value="1111111111"/>
   7:      <add key="SMTP_Server" value="smtp.gmail.com"/>
   8:      <add key="SMTP_Port" value="587"/>
   9:      <add key="SMTP_SSL" value="True"/>
  10:      <add key="SMTP_FromAddr" value="[email protected]"/>
  11:      <!-- Этот адрес нужен для активации логина и сброса пароля -->
  12:      <add key="HostingURL" value="localhost:52796"/>
  13:      <add key="NameURL" value="Open Community Media Room"/>
  14:    ....

Скористуватися класом MAIL можна якось так:


Поштові розсилки через GMAIL

Саме цім кодом і сформовано листа, що ви бачите на титулі сторінці. А база у моему новому фреймворку під MVC залишилась також сама, як під ASP.NET :


   1:  CREATE TABLE [dbo].[SendMail](
   2:      [i] [int] IDENTITY(1,1) NOT NULL,
   3:      [Date] [datetime] NOT NULL,
   4:      [ToAddr] [nvarchar](256) NOT NULL,
   5:      [Subject] [nvarchar](500) NOT NULL,
   6:      [Body] [nvarchar](max) NOT NULL,
   7:      [Error] [nvarchar](max) NULL
   8:  ) ON [PRIMARY]

   1:  ALTER PROCEDURE [dbo].[AddMail]
   2:  @ToAddr nvarchar(256),
   3:  @Subject nvarchar(500),
   4:  @Body nvarchar(max)
   5:  as
   6:  INSERT [SendMail]([Date],[ToAddr],[Subject],[Body])
   7:  VALUES (GetDate(), @ToAddr, @Subject, @Body)
   8:  select SCOPE_IDENTITY() as MailId

   1:  ALTER PROCEDURE [dbo].[AddMailError]
   2:  @i int,
   3:  @Error nvarchar(max)
   4:  as
   5:  update [SendMail] set [Error]=@Error where I=@i

Як бачите, все не просто, а дуже просто, якщо все це розуміти. На наступній сторінці я розповім як правильно сформувати незламний Security Token для зміну паролю сайту, який я тепер теж роблю трошки інакше, ніж раніше - Формування безопасного токена для зміни паролю.



Comments ( )
Link to this page: //www.vb-net.com/Gmail/index.htm
< THANKS ME>