dibdab Ответов: 2

Отправлять электронную почту на несколько адресов электронной почты, полученных из базы данных?


Итак, моя проблема заключается в том, что мне нужно выбрать несколько адресов электронной почты из базы данных, а затем отправить им электронное письмо.
Возможно ли это сделать?
Поэтому в основном мне нужно построить sql, чтобы найти нужные мне адреса электронной почты, а затем использовать DBUTL.SendEmail для отправки этих адресов электронной почты по электронной почте. Как мне это сделать?

Что я уже пробовал:

// string sqlB = @"SELECT email, attendees_email
              FROM Staff S INNER JOIN Staff_have_meetings SHM ON S.staff_id = SHM.staff_id
              INNER JOIN Meeting M ON M.meeting_id = SHM.meeting_id
              INNER JOIN Attendees A on A.attendees_id = AHM.attendees_id
              AND AHM.meeting_id ={0}";
 DataTable ds = DBUtl.GetTable(sqlB, TxtMeetingID);

 string template = EMAIL MESSAGE (Which I have done too);
 string title = "Cancellation of a meeting";
 string link = "http://SendNotification.aspx";
 string message = String.Format(template, link);
 string result;
 if (EmailUtl.SendEmail(sqlB, title, message, out result))
 {
     LtlMsg.Text = "Cancellation Email has been sent.";
 }

 else
 {
     LtlMsg.Text = "Error " + DBUtl.DB_Message;
 }


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

F-ES Sitecore

Вероятно, вам нужно будет просмотреть набор данных и отправить индивидуальное электронное письмо каждому человеку

строка html = "моя электронная почта"
foreach (запись в результатах)
{
Отправить почту для записи["адрес получателя"]
}

Вы не предоставили достаточно кода, чтобы дать конкретный пример того, что вам нужно сделать.

dibdab

Я еще не очень уверен, как его закодировать.. но в основном мне нужно получить значение из базы данных с помощью запроса.. а затем объединить их с ";" и отправить им электронное письмо..

F-ES Sitecore

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

dibdab

Это должно быть прекрасно, потому что это только в моей команде..

A_Griffin

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

dibdab

Да ... все они действительны..
Не беспокойтесь, мне нужно только отправить его нескольким людям.
Я попытался найти в google пример для этого, но, похоже, не могу найти тот, который я могу связать их электронную почту с";", а затем отправить всем контактам электронное письмо.

dibdab

Спасибо вам за решение @F-ES Sitecore

2 Ответов

Рейтинг:
2

Lay_Kay

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

MailMessage mail_IS = new MailMessage("from email address", "TO email address");
mail_IS.IsBodyHtml = true;

mail_IS.CC.Add(new MailAddress("hello@world.org"));


Рейтинг:
15

F-ES Sitecore

// I'm hard-coding the DataTable for the example
// you'll use the DataTable you have and the right column name
// for the email field
DataTable ds = new DataTable();
ds.Columns.Add("Email", typeof(string));
ds.Rows.Add("email1@domain.com");
ds.Rows.Add("email2@domain.com");
ds.Rows.Add("email3@domain.com");

string emailList = ds.Select()
    .Select(r => (string)r["Email"])
    .Aggregate((a, b) => a = a + ";" + b);


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