none
Анонимный relay с ограничением RRS feed

  • Вопрос

  • Здравствуйте

    Есть база клиентов больше 200к адресов есть скрипт который отправляет почту.

    Вот так разрешаю отправлять без авторизации 

    New-ReceiveConnector -Name "Anonymous Relay" -Usage Custom -PermissionGroups AnonymousUsers -Bindings 192.168.1.10:25 –RemoteIpRanges 192.168.1.253

    Get-ReceiveConnector "Anonymous Relay" | Add-ADPermission -User "NT AUTHORITY\АНОНИМНЫЙ ВХОД" -ExtendedRights "Ms-Exch-SMTP-Accept-Any-Recipient"

    Как установить ограничения на отправку писем с ip 192.168.1.253 чтобы каждую минуту отправлялось из очереди по 10 писем ? 

    SPF PTR прописано 

    Или есть более правильный способ чтобы не попасть в спам базу при такой массовой рассылки ?

    Заранее благодарен.


    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    21 ноября 2013 г. 1:55

Ответы

  • Скрипт очень даже ничего! С Вашего позволения, положу себе в архив )

    По поводу количества одновременных отправлений я писал выше, нет никакой взаимосвязи с попаданием в спам. Можете не беспокоиться.


    Если вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение"


    • Изменено Aleksey Medvedovskiy 21 ноября 2013 г. 10:18
    • Помечено в качестве ответа MR.Minion 21 ноября 2013 г. 11:44
    21 ноября 2013 г. 10:17

Все ответы

  • попробуйте задействовать командлет send-mailmessage через цикл fore Each

    Если вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение"

    21 ноября 2013 г. 7:57
  • Из моего опыта:

    Я сам недавно прорабатывал для себя вопрос как не попасть в спам базы при ведении рассылок. Связывался с суппортами mail.ru yandex.ru и т.д.

    Из всего что я узнал у всех есть общепринятые требования:

    1. SPF и PTR  - Обязательно
    2. DKIM signature - рекомендовано
    3. Наличие заголовков в теле письма Precedence:bulk
    4. Наличие заголовков в теле письма x-auto-response-suppress:OOF

    По количеству одновременно отправляемых писем сказали, что они не вправе выставлять какие либо ограничения на отправку.

    Если письма соответствуют общепринятому стандарту рассылок, то все прекрасно дойдет до адресата. Вам лишь необходимо следить за количеством недоставленных (невалидных адресов) и включить в письмо возможность отписаться от рассылки. И своевременно редактировать списки рассылки. Если количество невалидных из общего числа отправляемых более 5%, то большая вероятность что вас начнут блокировать. По началу письма будут валиться в спам как нежелательное. А в конечном итоге заблокируют IP.

    От себя: рекомендую зарегистрировать ваши домены на новом сервисе от mail.ru - postmaster.mail.ru и там отслеживать статистику по письмам отправляемым на mail.ru.


    Если вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение"

    21 ноября 2013 г. 8:12
  • попробуйте задействовать командлет send-mailmessage через цикл fore Each

    Если вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение"

    Вот сам скрипт:

    Function Get-FileName($InitialDirectory,$Title)
    {   
    	$OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog
    	$OpenFileDialog.InitialDirectory = $initialDirectory
    	$OpenFileDialog.Filter = "All files (*.*)| *.*"
    	$OpenFileDialog.Title = $Title
    	$OpenFileDialog.ShowDialog() | Out-Null
    	$OpenFileDialog.Filename
    }
    
    Function Check {
    	$subject = $richTextBox1.Text -match "\w"
    	$addr = Test-Path -LiteralPath $richTextBox2.Text
    	$body = Test-Path -LiteralPath $richTextBox3.Text
    	if ($subject -and $addr -and $body) {
    		$button3.Enabled = $true
    	}
    	else {
    		$button3.Enabled = $false
    	}
    }
    
    Add-Type -Assembly System.Windows.Forms
    Add-Type -Assembly System.Drawing
    #Generated Form Function
    function GenerateForm {
    
    #region Generated Form Objects
    $form1 = New-Object System.Windows.Forms.Form
    $button3 = New-Object System.Windows.Forms.Button
    $button2 = New-Object System.Windows.Forms.Button
    $richTextBox3 = New-Object System.Windows.Forms.RichTextBox
    $button1 = New-Object System.Windows.Forms.Button
    $richTextBox2 = New-Object System.Windows.Forms.RichTextBox
    $label1 = New-Object System.Windows.Forms.Label
    $richTextBox1 = New-Object System.Windows.Forms.RichTextBox
    $InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState
    #endregion Generated Form Objects
    
    #----------------------------------------------
    #Generated Event Script Blocks
    #----------------------------------------------
    #Provide Custom Code for events specified in PrimalForms.
    $button3_OnClick= 
    {
    	$Encoding = [System.Text.Encoding]::UTF8
    	$Subject = $richTextBox1.Text
    	$Addr = Get-Content $richTextBox2.Text
    	$Body = Get-Content $richTextBox3.Text | Out-String
    
        $Addr | Foreach {
    	Send-Mailmessage -To $_ -From "SB Акангард <noreply@news.sb.com>" `
    		-Encoding $Encoding -Subject $Subject -Body $Body -BodyAsHTML `
    			-Priority High -DeliveryNotificationOption OnSuccess -SMTPServer 127.0.0.1}
    }
    
    $button1_OnClick= 
    {
    	$richTextBox2.Text = Get-FileName -Title "Файл расслыки адресов"
    	Check
    }
    
    $button2_OnClick= 
    {
    	$richTextBox3.Text = Get-FileName -Title "Файл тела письма в формате html"
    	Check
    }
    
    $handler_label1_Click= 
    {
    #TODO: Place custom script here
    
    }
    
    $handler_form1_Load= 
    {
    #TODO: Place custom script here
    
    }
    
    $OnLoadForm_StateCorrection=
    {#Correct the initial state of the form to prevent the .Net maximized form issue
    	$form1.WindowState = $InitialFormWindowState
    }
    
    #----------------------------------------------
    #region Generated Form Code
    $System_Drawing_Size = New-Object System.Drawing.Size
    $System_Drawing_Size.Height = 239
    $System_Drawing_Size.Width = 512
    $form1.ClientSize = $System_Drawing_Size
    $form1.DataBindings.DefaultDataSourceUpdateMode = 0
    $form1.FormBorderStyle = 2
    $form1.Name = "form1"
    $form1.Text = "Send Mail Message"
    $form1.add_Load($handler_form1_Load)
    
    
    $button3.DataBindings.DefaultDataSourceUpdateMode = 0
    $button3.Enabled = $False
    $button3.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",14,1,3,0)
    
    $System_Drawing_Point = New-Object System.Drawing.Point
    $System_Drawing_Point.X = 184
    $System_Drawing_Point.Y = 194
    $button3.Location = $System_Drawing_Point
    $button3.Name = "button3"
    $System_Drawing_Size = New-Object System.Drawing.Size
    $System_Drawing_Size.Height = 33
    $System_Drawing_Size.Width = 118
    $button3.Size = $System_Drawing_Size
    $button3.TabIndex = 6
    $button3.Text = "Send"
    $button3.UseVisualStyleBackColor = $True
    $button3.add_Click($button3_OnClick)
    
    $form1.Controls.Add($button3)
    
    
    $button2.DataBindings.DefaultDataSourceUpdateMode = 0
    
    $System_Drawing_Point = New-Object System.Drawing.Point
    $System_Drawing_Point.X = 412
    $System_Drawing_Point.Y = 146
    $button2.Location = $System_Drawing_Point
    $button2.Name = "button2"
    $System_Drawing_Size = New-Object System.Drawing.Size
    $System_Drawing_Size.Height = 23
    $System_Drawing_Size.Width = 80
    $button2.Size = $System_Drawing_Size
    $button2.TabIndex = 5
    $button2.Text = "Open"
    $button2.UseVisualStyleBackColor = $True
    $button2.add_Click($button2_OnClick)
    
    $form1.Controls.Add($button2)
    
    $richTextBox3.DataBindings.DefaultDataSourceUpdateMode = 0
    $System_Drawing_Point = New-Object System.Drawing.Point
    $System_Drawing_Point.X = 20
    $System_Drawing_Point.Y = 148
    $richTextBox3.Location = $System_Drawing_Point
    $richTextBox3.Multiline = $False
    $richTextBox3.Name = "richTextBox3"
    $richTextBox3.ReadOnly = $True
    $System_Drawing_Size = New-Object System.Drawing.Size
    $System_Drawing_Size.Height = 23
    $System_Drawing_Size.Width = 373
    $richTextBox3.Size = $System_Drawing_Size
    $richTextBox3.TabIndex = 4
    $richTextBox3.Text = "Выберите файл для тела письма в формате html"
    
    $form1.Controls.Add($richTextBox3)
    
    
    $button1.DataBindings.DefaultDataSourceUpdateMode = 0
    
    $System_Drawing_Point = New-Object System.Drawing.Point
    $System_Drawing_Point.X = 412
    $System_Drawing_Point.Y = 98
    $button1.Location = $System_Drawing_Point
    $button1.Name = "button1"
    $System_Drawing_Size = New-Object System.Drawing.Size
    $System_Drawing_Size.Height = 23
    $System_Drawing_Size.Width = 80
    $button1.Size = $System_Drawing_Size
    $button1.TabIndex = 3
    $button1.Text = "Open"
    $button1.UseVisualStyleBackColor = $True
    $button1.add_Click($button1_OnClick)
    
    $form1.Controls.Add($button1)
    
    $richTextBox2.DataBindings.DefaultDataSourceUpdateMode = 0
    $System_Drawing_Point = New-Object System.Drawing.Point
    $System_Drawing_Point.X = 20
    $System_Drawing_Point.Y = 98
    $richTextBox2.Location = $System_Drawing_Point
    $richTextBox2.Multiline = $False
    $richTextBox2.Name = "richTextBox2"
    $richTextBox2.ReadOnly = $True
    $System_Drawing_Size = New-Object System.Drawing.Size
    $System_Drawing_Size.Height = 23
    $System_Drawing_Size.Width = 373
    $richTextBox2.Size = $System_Drawing_Size
    $richTextBox2.TabIndex = 2
    $richTextBox2.Text = "Выберите файл для рассылки адресов"
    
    $form1.Controls.Add($richTextBox2)
    
    $label1.DataBindings.DefaultDataSourceUpdateMode = 0
    $label1.Font = New-Object System.Drawing.Font("Microsoft Sans Serif",14,1,3,0)
    
    $System_Drawing_Point = New-Object System.Drawing.Point
    $System_Drawing_Point.X = 184
    $System_Drawing_Point.Y = 9
    $label1.Location = $System_Drawing_Point
    $label1.Name = "label1"
    $System_Drawing_Size = New-Object System.Drawing.Size
    $System_Drawing_Size.Height = 23
    $System_Drawing_Size.Width = 118
    $label1.Size = $System_Drawing_Size
    $label1.TabIndex = 1
    $label1.Text = "Тема:"
    $label1.TextAlign = 32
    $label1.add_Click($handler_label1_Click)
    
    $form1.Controls.Add($label1)
    
    $richTextBox1.DataBindings.DefaultDataSourceUpdateMode = 0
    $System_Drawing_Point = New-Object System.Drawing.Point
    $System_Drawing_Point.X = 20
    $System_Drawing_Point.Y = 45
    $richTextBox1.Location = $System_Drawing_Point
    $richTextBox1.Multiline = $False
    $richTextBox1.Name = "richTextBox1"
    $System_Drawing_Size = New-Object System.Drawing.Size
    $System_Drawing_Size.Height = 19
    $System_Drawing_Size.Width = 480
    $richTextBox1.Size = $System_Drawing_Size
    $richTextBox1.TabIndex = 0
    $richTextBox1.Text = ""
    $richTextBox1.Add_TextChanged({
    	Check
    })
    $form1.Controls.Add($richTextBox1)
    
    #endregion Generated Form Code
    
    #Save the initial state of the form
    $InitialFormWindowState = $form1.WindowState
    #Init the OnLoad event to correct the initial state of the form
    $form1.add_Load($OnLoadForm_StateCorrection)
    #Show the Form
    $form1.ShowDialog()| Out-Null
    
    } #End Function
    
    #Call the Function
    GenerateForm

    Вот кусок кода который отвечает за отправку:

    $Addr | Foreach {
    	Send-Mailmessage -To $_ -From "SB Акангард <noreply@news.sb.com>" `
    		-Encoding $Encoding -Subject $Subject -Body $Body -BodyAsHTML `
    			-Priority High -DeliveryNotificationOption OnSuccess -SMTPServer 127.0.0.1}
    }

    Все правильно ?

    Спасибо за помощь.






    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    21 ноября 2013 г. 8:45
  • Из моего опыта:

    Я сам недавно прорабатывал для себя вопрос как не попасть в спам базы при ведении рассылок. Связывался с суппортами mail.ru yandex.ru и т.д.

    Из всего что я узнал у всех есть общепринятые требования:

    1. SPF и PTR  - Обязательно
    2. DKIM signature - рекомендовано
    3. Наличие заголовков в теле письма Precedence:bulk
    4. Наличие заголовков в теле письма x-auto-response-suppress:OOF

    По количеству одновременно отправляемых писем сказали, что они не вправе выставлять какие либо ограничения на отправку.

    Если письма соответствуют общепринятому стандарту рассылок, то все прекрасно дойдет до адресата. Вам лишь необходимо следить за количеством недоставленных (невалидных адресов) и включить в письмо возможность отписаться от рассылки. И своевременно редактировать списки рассылки. Если количество невалидных из общего числа отправляемых более 5%, то большая вероятность что вас начнут блокировать. По началу письма будут валиться в спам как нежелательное. А в конечном итоге заблокируют IP.

    От себя: рекомендую зарегистрировать ваши домены на новом сервисе от mail.ru - postmaster.mail.ru и там отслеживать статистику по письмам отправляемым на mail.ru.


    Если вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение"

    Как добавить заголовки в рассылку через транспортное правило , рассылка будет происходить от пользователя noreply@news.sb.com"

    Precedence:bulk
    x-auto-response-suppress:OOF


    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.


    • Изменено MR.Minion 21 ноября 2013 г. 9:10
    21 ноября 2013 г. 8:48
  • Сделал спасибо, тока получилось два правила одним правилом нельзя добавить два заголовка ?

    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    21 ноября 2013 г. 9:34
  • Да, все верно, это два отдельных правила. Только проверьте на выходе во внешней системе заголовки. У меня Exchange подменяет заголовки на одном из этапов роутинга.

    Вот мое обсуждение с проблемой, пока решения не нашел: http://social.technet.microsoft.com/Forums/ru-RU/e931625d-fd74-4c44-96a4-a8ebfd8ef752/-?forum=exchange2013ru


    Если вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение"

    21 ноября 2013 г. 10:05
  • Скрипт очень даже ничего! С Вашего позволения, положу себе в архив )

    По поводу количества одновременных отправлений я писал выше, нет никакой взаимосвязи с попаданием в спам. Можете не беспокоиться.


    Если вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение"


    • Изменено Aleksey Medvedovskiy 21 ноября 2013 г. 10:18
    • Помечено в качестве ответа MR.Minion 21 ноября 2013 г. 11:44
    21 ноября 2013 г. 10:17
  • Скрипт очень даже ничего! С Вашего позволения, положу себе в архив )

    По поводу количества одновременных отправлений я писал выше, нет никакой взаимосвязи с попаданием в спам. Можете не беспокоиться.


    Если вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение"



    Скрипт общий пользуйтесь , спасибо.

    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    21 ноября 2013 г. 11:44
  • Кстати через скрипт заголовки не изменяются, отрабатывает нормально. А после нажатия SEND у вас форма закрывается?

    Если вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение"

    21 ноября 2013 г. 12:54
  • Нет форма не закрывается , как кнопка становится активной можно делать след рассылку или закрыть форму , моему маркетингу так больше нравится =)

    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    21 ноября 2013 г. 12:55