场景:我们正在使用createwizard控件为我们的网站创建用户。当用户收到电子邮件时,我们只需向用户发送电子邮件,其中包含用户名和密码,说明其帐户已创建。使用MailMessage和SMTPClient。
问题:当用户没有电子邮件时(例如临时员工,学生),我需要能够生成电子邮件,但要通过创建者的邮件客户端打开电子邮件,这样他们就可以了可以自己输入电子邮件/查看用户名和密码。与@mailto功能类似。
问题:有没有办法从后面的代码中执行此操作?我试过搜索,但到处告诉我使用我不需要的MailMessage和SMTPClient。
提前致谢。
答案 0 :(得分:5)
您可以创建mailto-link并使用JavaScript单击它。
见这里:How do I programmatically click a link with javascript?
或者你可以创建一个带有文本框“To,Subject and Body”的表单和一个按钮发送,等待用户填写它(到字段),然后你发送带有smtpclient的邮件。
旁注:为什么不提示输入电子邮件地址然后将其发送到那里?
答案 1 :(得分:2)
嗯..你可以做一个response.write或者在某个地方使用一个替换控件来链接到一个生成属性的函数a href = mailto:.......等。 HTML
如果您希望自动完成,您可以执行javascript目标重定向
答案 2 :(得分:1)
<击> 我想我终于明白你所追求的是什么了。此代码应该有效:
string sMailTo = "putmailhere@domain.com";
string subject = "New member data";
string body = "New member has been added.\nName: John Doe\nPassword: pass";
Process.Start(string.Format("mailto:{0}?subject={1}&body={2}", sMailTo, Uri.EscapeUriString(subject), Uri.EscapeUriString(body)));
请注意,您只能使用纯文本,从我看到您无法强制使用HTML格式。
击>
编辑:由于它是ASP.NET应用程序,因此这种方法实际上是无用的,因为邮件客户端将在服务器计算机上而不是访问者计算机上打开。
将此留给那些使用WinForms或任何非网络环境的人。
对于ASP.NET,唯一的方法是调用<a href="mailto:...">
锚点的客户端脚本。