MS Access - массовая рассылка по электронной почте?

Я использую MS Access для создания базы данных с более чем 5000 контактами. Эти контакты разделены в зависимости от того, к какому сотруднику принадлежит контакт, а затем снова по категориям для удобного поиска. Я хочу создать кнопку, которая будет открывать запрос в табличной форме (простая), а затем установить флажки, чтобы сотрудник мог выбрать, например, 100 контактов для отправки электронной почты из 110 в таблице, а затем отправить массовое электронное письмо, например, информационный бюллетень (не все так просто!). Я схожу с ума, пытаясь понять, как это сделать, поскольку я действительно не разбираюсь в программировании (я временный, брошенный на эту работу, и просто делаю все, что могу), и все, что я могу найти по этому поводу, - это что-то о циклах (понятия не имею!) и что для этого мне нужно программное обеспечение.

Какие-нибудь решения для меня, пожалуйста? Я бы хотел по возможности избегать покупки / установки программного обеспечения, и если у вас есть ответ, сделайте его как можно проще ...

Заранее спасибо!

Кейт

Когда вы начинаете автоматическую рассылку писем более чем нескольким людям одновременно, если вы не подписаны на цикл обратной связи с интернет-провайдером, не имеете учетной записи abuse @ для жалоб, и особенно если вы не удаляете доставляемые адреса из своего списка , вы попадете в черный список в течение нескольких дней, и вам будет сложно исключить его из списка очень. Вам следует работать с поставщиком услуг электронной почты (ESP), таким как Constant Contact (нет, я не работаю на них). Они автоматически делают всю эту ерунду за вас. супер - плохая идея делать это хакерским способом.

user359996 08.11.2010 04:50
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
1
8 560
8

Ответы 8

Я думаю, вам нужно будет изучить код VBA, чтобы это сделать. Этот руководство может быть полезен.

Вот путь к отправить электронное письмо из доступа.

Вот еще один ресурс для отправки электронная почта через MS Access

Я только что создал следующий пример работающий в MS Access 97.

Образец таблицы (я тестировал код с действующими адресами электронной почты):

ID Имя Электронная почта

1 Рикс [email protected]

2 Кейт [email protected]

3 X [email protected]

Форма с одной кнопкой. При нажатии кнопки выполняется следующий код:

Private Sub Mail_Click()

    Dim r As Recordset
    Dim email As String
    Set r = CurrentDb.OpenRecordset("select * from Addresses")
    Do While Not r.EOF
        email = r(2)
        DoCmd.SendObject acSendNoObject, Null, Null, email, Null, Null, "Test subject", "Message body of the test letter", False, Null
        r.MoveNext
    Loop
    r.Close

End Sub

Надеюсь, вы сможете вставить его в свое приложение.

Ответ, предоставленный rics, отправит электронное письмо всем участникам набора записей, но похоже, что, возможно, вы хотите отправить одно электронное письмо в настраиваемый список рассылки. Для этого настройте код rics, чтобы создать адресную строку примерно так:

Личная подписка Mail_Click ()

Dim r As Recordset
Dim email As String
Set r = CurrentDb.OpenRecordset("select * from Addresses")
Do While Not r.EOF
    email = email & r(2) & ";"
    r.MoveNext
Loop
r.Close

DoCmd.SendObject acSendNoObject, Null, Null, email, Null, Null, "Test subject", "Message body of the test letter", False, Null

Конец подписки

Если какое-либо электронное письмо пустое или пустое, у вас возникнут проблемы.

Fionnuala 04.12.2008 18:02

а ты можешь объяснить, что ты имеешь в виду ??

Kate 05.12.2008 05:20

Кейт,

К сожалению, не существует особого «волшебного» кода для того, что вы планируете делать. Вам нужно будет что-то написать. Мое решение было бы:

  1. Создайте форму с 3 элементами управления: 1 текстовый элемент, 1 элемент управления списком, 1 кнопка "отправить"
  2. Текстовый элемент управления содержит текст для отправки
  3. В элементе управления списком отображаются все мои доступные электронные письма (заполненные набором записей)
  4. Множественный выбор будет включен, так что я могу выбрать несколько элементов в списке.
  5. Щелкнув по кнопке, я

    Объедините все выбранные электронные письма, чтобы получить строку "sendTo", например sendTo = "[email protected]; [email protected]". Вызовите метод doCmd.sendObject, используя sendTo + текстовую строку в качестве аргумента.

Возможные варианты:

  • Дополнительный контроль темы электронного письма
  • Сохраняйте след отправленных писем в таблице (тема, текст, дата, люди, которых они достигли). Это может быть так же просто, как «одна запись на почту» с полем памятки для записи текстовой строки sendTo (конечно, вы могли бы создать что-то более умное с несколькими таблицами, чтобы придерживаться отношения «многие ко многим», которое может быть установлено между вашими людьми. стол и ваш почтовый стол, но он может вам не понадобиться)

Получил работу :)

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

    Dim r As Recordset
Dim Email As String
Set r = CurrentDb.OpenRecordset("select Email from FranksFinanceBrokers")
Do While Not r.EOF
    Email = Email & r(0) & ";"
    r.MoveNext
Loop
r.Close

DoCmd.SendObject acSendNoObject, Null, Null, "", "", Email, "", "", True, Null

End Sub

Спасибо за помощь, ребята!

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

rics 05.12.2008 13:43

Электронная почта из Access имеет ряд подводных камней, не в последнюю очередь из-за того, что это может сделать вас похожим на спамера и вызвать проблемы с вашим почтовым хостом. Кроме того, существует множество проблем с безопасностью. Лучший источник информации об этом - Электронная почта Тони Тэйвза: часто задаваемые вопросы.

Есть несколько способов обойти пропавшие адреса электронной почты. Самый простой - настроить SQL, чтобы исключить их:

выберите адрес электронной почты от FranksFinanceBrokers, ГДЕ (адрес электронной почты НЕ ПУСТОЙ) И (адрес электронной почты <> "")

Другой подход заключался бы в добавлении оператора IF в код построения строки:

ЕСЛИ Not IsNull (r (0)) AND r (0) <> "" ТОГДА Электронная почта = Электронная почта & r (0) & ";"

Я бы просто отфильтровал это на уровне SQL - эффективнее и проще.

Было бы проще купить программное обеспечение для этого? Да, но где в этом проблема? :-) Вы уже прошли большую часть пути, так что я буду придерживаться этого.

Да, я получаю больше удовольствия (и получаю так много опыта), проделывая долгий путь! Я преодолел свою проблему, настроив указанный код, чтобы он по существу игнорировал ошибку, отлично работает :)

Kate 08.12.2008 03:31

Другие вопросы по теме