我正在开发VSTO中的电子邮件跟踪应用程序。它在html正文中跟踪url assign时加载跟踪网址。我的代码示例在发送按钮事件中
private void Application_ItemSend(object Item, ref bool Cancel)
{
Outlook.MailItem mailItem = Item as Outlook.MailItem;
string body = mailItem.HTMLBody;
string imagurl = String.Format("<img id='shtracking' src='{0}' border='0'
width='0' height='0'>",emailTrack);
int index2 = body.IndexOf("</body>");
string finalResult = body.Insert(index2, imagurl);
mailItem.HTMLBody = finalResult; //issue
}
它在发送消息之前重新加载页面。无论如何要在发送电子邮件之前阻止请求?
谢谢
答案 0 :(得分:0)
尝试取消提交(将Cancel参数设置为true)并启动计时器 - 当它触发时,您将不在发送事件处理程序中,因此您可以调用public void gotoDashboard(View view)
{
email1=email.getText().toString();
pass1=pass.getText().toString();
mAuth=FirebaseAuth.getInstance();
if (email1 != null && !email1.isEmpty() && pass1 != null && !pass1.isEmpty())
{
mAuth.signInWithEmailAndPassword(email1, pass1)
.addOnCompleteListener(new OnCompleteListener<AuthResult>()
{
@Override
public void onComplete(@NonNull Task<AuthResult> task)
{
progressDialog.dismiss();
if (task.isSuccessful())
{
startActivity(new Intent(Login.this, Dashboard.class));
}
else
{
Toast.makeText(Login.this, ""e.toString(), Toast.LENGTH_SHORT).show();
}
}
});
}
}
关闭检查员。然后,您可以设置MailItem.Close
属性并再次致电HTMLBody
。以某种方式标记项目以避免再次在Send事件中处理它。