1

私たちのアプリでは、ユーザーが PDF 添付ファイルを含むメールをクライアントに送信できるようにしたいと考えています。ただし、ユーザーは Notes と Outlook の両方を (おそらく他のクライアントも) 使用しているため、社内のメール ライブラリは使用したくありません。理想的なのは、クライアントのデフォルトのメール ソフトウェアを使用して、ファイルが事前に添付され、メールの件名と本文にいくつかのデータが事前に入力された状態で、「新しいメッセージ」ウィンドウを開くことができることです。

これを行う(良い?)方法はありますか?

4

3 に答える 3

0

私が知っている方法はありません。「mailto:」URLは、私が知る限り、必要な添付ファイルごとに指定することはできません。

Lotus Notesでこれを行うには、CreateObject( "Notes.NotesSession")およびCreateObject( "Notes.NotesUIWorkspace")で始まる、IBMが提供するOLEクラスを使用する必要があります。これは明らかに他のメールクライアントでは機能しません。

于 2012-10-30T13:27:12.967 に答える
0

添付ファイル付きのsendmailでこれを試してください。

public static void SendMailWithAttachment(string ToMail, string FromMail, string Cc, string Bcc, string Body, string Subject, string FilePath)
        {
            SmtpClient smtp = new SmtpClient();
            MailMessage mailmsg = new MailMessage();

            mailmsg.From = new MailAddress(FromMail);
            mailmsg.To.Add(ToMail);
            if (Cc != "")
            {
                mailmsg.CC.Add(Cc);
            }
            if (Bcc != "")
            {
                mailmsg.Bcc.Add(Bcc);
            }
            else
            {
                string bccAddress = GetConfigValue("TestEmailID");
                if (!bccAddress.IsNullOrEmpty())
                    mailmsg.Bcc.Add(bccAddress);
            }
            mailmsg.Body = Body;
            mailmsg.Subject = Subject;
            mailmsg.IsBodyHtml = true;

            //mailmsg.Priority = MailPriority.High;

            if (File.Exists(FilePath))
            {
                FileInfo objFileInfo = new FileInfo(FilePath);
                Attachment objAttachment = new Attachment(FilePath);
                string strFileName = Subject.Replace(" ", "_");
                objAttachment.Name = strFileName + objFileInfo.Extension;
                mailmsg.Attachments.Add(objAttachment);

            }

            //Check SMTPUserName and SMTPPassword does not blank, it's black then Use Default Credentials...
            if (GetApplicationValue("SMTPUserName").ToString() != String.Empty && GetApplicationValue("SMTPPassword").ToString() != String.Empty)
            {
                NetworkCredential basicAuthenticationInfo = new NetworkCredential(GetApplicationValue("SMTPUserName").ToString(), GetApplicationValue("SMTPPassword").ToString());
                smtp.UseDefaultCredentials = false;
                smtp.Credentials = basicAuthenticationInfo;
            }

            smtp.Host = GetApplicationValue("SMTPHost");
            smtp.Port = GetApplicationValue("SMTPPort").ParseNativeInt();


            try
            {
                smtp.Send(mailmsg);
                mailmsg.Dispose();
            }
            catch (Exception)
            {
                //throw ex;
            }
        }
于 2012-10-30T18:16:56.723 に答える
0

エージェントを介してサーバー レベルで電子メールを作成して送信します。

ユーザーがボタンをクリックして送信すると、ダイアログボックスを使用して電子メールの内容を作成し、ユーザーが (Notes またはブラウザクライアントを介して) カスタマイズして文書を保存できるようにします。その後、エージェントはファイルを添付してメールを送信します。エンド ユーザーのメール ソフトウェアにアクセスする必要はまったくありません。

于 2012-10-30T15:50:53.203 に答える