Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Office (Word, Excel, Outlook и т.д.) (http://forum.oszone.net/forumdisplay.php?f=115)
-   -   [решено] Отправка писем из списка адресов Excel (http://forum.oszone.net/showthread.php?t=314808)

B1010 12-05-2016 21:38 2634181

Отправка писем из списка адресов Excel
 
Имеется некий список E-Mail адресов, и для каждого адреса имеется определённый текст, который нужно отправить именно ему. Проблема в том, что адреса постоянно разные. Возможно ли составить VB скрипт который это будет делать?

Iska 12-05-2016 22:37 2634192

Можно.

Код будет после предоставления образца «списка E-Mail адресов» и описания алгоритма соответствия конкретного адреса конкретному «определённому тексту».

B1010 13-05-2016 09:03 2634264

Конечно, но только в личку, так как я не имею права его распространять публично.

Iska,
Не могу отправить в личку, у вас превышен лимит на сообщения)

Iska 13-05-2016 09:19 2634271

Конфиденциальный текст можно заменить любым осмысленным набором символов, реальные почтовые адреса — фиктивными.

B1010 13-05-2016 09:37 2634275

Вложений: 1
Без проблем, приложил к сообщению

Iska 13-05-2016 10:20 2634293

Например, так:
Код:

Option Explicit

Sub SendMassMail()
    Const cdoSendUsingPort = 2
    Const cdoBasic = 1
   
    Const strSchema = "http://schemas.microsoft.com/cdo/configuration/"
   
    Dim objRange As Range
   
    If IsConnected() Then
        For Each objRange In ThisWorkbook.Worksheets.Item("Лист1").UsedRange.Columns.Item(1).Cells
            With CreateObject("CDO.Message")
                .From = "myaccount@mail.ru"
                .To = objRange.Value
                .Subject = "Some Sobject"
                .Textbody = objRange.Offset(0, 1).Value
               
                With .Configuration.Fields
                    .Item(strSchema & "smtpserver") = "smtp.mail.ru"
                    .Item(strSchema & "sendusing") = cdoSendUsingPort
                    .Item(strSchema & "smtpserverport") = 25
                    .Item(strSchema & "smtpauthenticate") = cdoBasic
                    .Item(strSchema & "sendusername") = "myaccount@mail.ru"
                    .Item(strSchema & "sendpassword") = "mypassword"
                   
                    .Update
                End With
               
                .Send
            End With
        Next
    End If
End Sub

Function IsConnected()
    Dim objSWbemObjectEx
   
    IsConnected = False
   
    For Each objSWbemObjectEx In GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2").ExecQuery("SELECT * FROM Win32_PingStatus WHERE Address = 'www.google.com'")
        With objSWbemObjectEx
            If Not IsNull(.StatusCode) And .StatusCode = 0 Then
                IsConnected = True
            End If
        End With
       
        Exit For
    Next
   
    Set objSWbemObjectEx = Nothing
End Function


B1010 13-05-2016 12:02 2634344

Iska,
Спасибо вам огромное, оказали большую услугу!

B1010 13-05-2016 15:39 2634424

Iska,
Начал тестить, первый камень в огороде

Iska 13-05-2016 21:55 2634566

Цитата:

Цитата B1010
Начал тестить, первый камень в огороде »

Добавьте в конфигурацию строку:
Код:

                                        .Item(strSchema & "smtpusessl") = True
Укажите правильный номер порта для используемого сервера с шифрованием (например, Mail.RU, Yandex — 465).

B1010 15-05-2016 19:22 2634962

Iska,
Спасибо, буду проверять

Iska 15-05-2016 20:29 2634983

Цитата:

Цитата B1010
Iska, Спасибо, буду проверять »

Я уже проверял :).


Время: 05:27.

Время: 05:27.
© OSzone.net 2001-