如何从CRM 2011本地发送“匿名”电子邮件?

时间:2013-09-17 13:14:49

标签: dynamics-crm-2011 dynamics-crm

我需要创建一个插件,为Web资源XML文件中列出的所有人发送电子邮件。将只有电子邮件地址,没有名称等,只是电子邮件地址。我不想用它们创建新的联系人。我也希望发件人是“匿名的”。通过说我的意思是我不想为此目的创建一个新的系统用户。

所以我确实找到了这个例子http://msdn.microsoft.com/en-us/library/hh210217.aspx,是的,它确实有效,但正如我所说,我不想将CRM实体用作收件人或发件人。如果CRM不会创建电子邮件活动实体会更好。

所以我真正需要的只是一个简单的脚本,它会将消息发送到某些地址。

我正在考虑使用System.Net.Mail命名空间(http://msdn.microsoft.com/en-us/library/system.net.mail.aspx),但问题是我不知道我们的SMTP地址是什么(我不擅长服务器端的东西)。而且,如果我使用System.Net.Mail并提供SMTP地址并不意味着每次插件安装在另一个CRM实例时我都必须更改它。所以我应该把它添加为我的XML配置文件的一部分。

我想到的另一个选择是我在这篇文章中使用了第一个例子,并且总是在发送电子邮件时删除我刚刚创建的联系人。听起来也不是很好的解决方案。

你会怎么做?我可以在CRM中使用额外的电子邮件活动和一个额外的系统用户,但不能使用额外的联系人。

1 个答案:

答案 0 :(得分:1)

根据您的说明,我认为最好的选择是使用System.Net.Mail发送电子邮件,如下所示。尝试找到您需要使用的SMTP。

var message = new MailMessage { From = new MailAddress("abc@example.com") };
message.ReplyToList.Add(new MailAddress("do-not-reply@example.com"));
message.To.Add(new MailAddress("xyz@example.com"));

message.Subject = "this is subject";
message.Body = "Email body text";
message.Priority = MailPriority.Normal;
var client = new SmtpClient("XXXXXXXX") { Timeout = 1000000 };               
client.Send(message);

Link可能对您有所帮助。