在我们的应用程序中,我们希望用户能够向客户发送包含 PDF 附件的电子邮件。但是,我们的用户同时使用 Notes 和 Outlook(可能还有其他客户端),因此我们不想使用任何内部邮件库。理想的是能够使用客户端默认邮件软件打开“新消息”窗口,预先附加文件并在电子邮件的主题和正文中预先输入更多数据。
有没有(好的?)这样做的方法?
在我们的应用程序中,我们希望用户能够向客户发送包含 PDF 附件的电子邮件。但是,我们的用户同时使用 Notes 和 Outlook(可能还有其他客户端),因此我们不想使用任何内部邮件库。理想的是能够使用客户端默认邮件软件打开“新消息”窗口,预先附加文件并在电子邮件的主题和正文中预先输入更多数据。
有没有(好的?)这样做的方法?
通过代理在服务器级别创建和发送电子邮件。
当用户单击按钮发送时,使用对话框构建电子邮件的内容并允许用户自定义它(通过 Notes 或浏览器客户端)并让他们保存文档。代理然后附加文件并发送电子邮件。根本不需要访问最终用户的邮件软件。
您对带有附件的 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;
}
}
我没有办法知道。据我所知,“mailto:” URL 无法指定您想要的每个附加文件。
要为 Lotus Notes 执行此操作,您必须使用 IBM 提供的 OLE 类,从 CreateObject("Notes.NotesSession") 和 CreateObject("Notes.NotesUIWorkspace") 开始。这显然不适用于任何其他邮件客户端。