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

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

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

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

Я попытался, без успеха, использовать Компонент Совместимости Outlook, который является спорным вопросом, потому что я обнаружил за прошлые 6 часов поиска с помощью Google того создания больше, чем несколько Экземпляров приложения являются очень интенсивно использующими ресурсы.

5
задан John Saunders 13 July 2010 в 18:02
поделиться

3 ответа

В одном из наших приложений пользователь нажимает кнопку «Создать», и оно создает и открывает электронное письмо в Outlook. Все, что им нужно сделать, это нажать кнопку отправки. Функции ниже.

public static void generateEmail(string emailTo, string ccTo, string subject, string body, bool bcc)
        {
            Outlook.Application objOutlook = new Outlook.Application();
            Outlook.MailItem mailItem = (Outlook.MailItem)(objOutlook.CreateItem(OlItemType.olMailItem));

            /* Sets the recipient e-mails to be either sent by 'To:' or 'BCC:' 
             * depending on the boolean called 'bcc' passed. */
            if (!(bcc))
            {
                mailItem.To = emailTo;
            }
            else
            {
                mailItem.BCC = emailTo;
            }
            mailItem.CC = ccTo;
            mailItem.Subject = subject;
            mailItem.Body = body;
            mailItem.BodyFormat = OlBodyFormat.olFormatPlain;
            mailItem.Display(mailItem);
        }

Как видите, в настоящий момент электронное письмо выводится в виде открытого текста, потому что требовалось, чтобы оно было дружественным к Blackberry. Вы можете легко изменить формат на HTML или Richtext, если вам нужны некоторые параметры форматирования. Для HTML используйте mailItem.HTMLBody

Надеюсь, это поможет.

РЕДАКТИРОВАТЬ:

Я должен отметить, что он используется в приложении C # и что он ссылается на Microsoft.Office.Core и с использованием Outlook в классе электронной почты, в котором находится функция.

2
ответ дан 14 December 2019 в 04:29
поделиться

Если вы хотите, чтобы пользователь отправлял письмо на стороне клиента, я не вижу, как System.Net.Mail поможет вам.

У вас есть два варианта:

  1. mailto:support@domain.com?subject=Error&body=Error сообщение здесь...

  2. заставить пользователя загрузить письмо в каком-то формате, открыть его в своем клиенте и отправить

Вариант 1, скорее всего, сломается при работе со сложными телами. В варианте 2 вам нужно найти формат, который поддерживается всеми почтовыми клиентами (которые используют ваши пользователи).

В варианте 1 вы можете хранить данные о письме локально на вашем сервере в соответствии с некоторым идентификатором ошибки и просто отправить письмо с идентификатором ошибки в теме:

mailto:support@domain.com?subject=Error 987771 encountered

4
ответ дан 14 December 2019 в 04:29
поделиться

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

Если предположить, что ваш отчет об ошибке доступен только со страницы ошибки, значит, у вас уже есть барьер для спама - если только спамеры не могут вызвать исключение.

Я всегда справлялся с этим, регистрируя ошибку и текст в базе данных и интегрируя это с системой продажи билетов. Может быть, также есть mailto: как предлагает Брюс с subject = ID & body = text, чтобы пользователь мог отправлять что-то по электронной почте.

Я не думаю, что файл в формате .eml тоже поможет - потому что им нужно будет его переслать, и большинство пользователей, вероятно, запутаются.

.eml - это фактически простой текст сообщения, включая заголовки в соответствии с RFC-5322.

2
ответ дан 14 December 2019 в 04:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: