【发布时间】:2017-08-10 16:05:14
【问题描述】:
我正在尝试在 Asp.net 中打开带有预填充附件的 default Mail Client。
如果我在本地服务器上尝试这个,它工作正常,但是当部署到服务器时它不再工作了。
这是我到目前为止所做的:
public void SendEmail()
{
try
{
int count = GridViewDocuments.Rows.Count;
Outlook.Application oApp = new Outlook.Application();
Outlook._MailItem oMailItem = (Outlook._MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);
if (count > 0)
{
foreach (GridViewRow gr in GridViewDocuments.Rows)
{
CheckBox chckEmail = (CheckBox)gr.FindControl("chckEmail");
Label lblDocumentId = (Label)gr.FindControl("lblDocumentId");
if (chckEmail.Checked == true)
{
string documentId = lblDocumentId.Text;
string DocumentTile = "";
int DocumentId = 0;
if (documentId != "")
{
DocumentId = Convert.ToInt32(documentId);
}
DocumentTile = GridViewDocuments.Rows[gr.RowIndex].Cells[1].Text;
EmailLogs(DocumentId, DocumentTile);
string filepath = GetDocumentByReceivingInquiryIdandReceivingInquiryForm(DocumentId);
//OpenFileDialog attachment = new OpenFileDialog();
if (filepath.Length > 0)
{
oMailItem.Attachments.Add(Server.MapPath(filepath),
Outlook.OlAttachmentType.olByValue,
1);
}
filepath = "";
}
}
}
oMailItem.To = toEmail;
oMailItem.Subject = Subject;
InserLog("Sending Email By Sending Inquriy Workspace", SendingInqId.ToString());
}
catch (Exception ex)
{
}
}
【问题讨论】:
-
当您调用 new Outlook.Application() 时,它正在服务器中运行。这就是为什么当你在本地运行时它可以工作,但在部署时它显然不在客户端机器上运行(这将是一个巨大的安全漏洞,而且如果没有扩展,浏览器无论如何都不可能做到这一点)