发送电子邮件C#

时间:2009-12-16 06:02:58

标签: .net email

我正在编写一个应用程序,需要打开一个新的邮件对话框,点击它上面的按钮。应用程序用户使用不同的邮件客户端,如MS Outlook,Thunder Bird等......

应用程序应该打开一个新的邮件对话框,其中填充了我的应用程序传递的信息,例如 TO BCC 主题正文有时使用附件

还需要设置来自地址。

最重要的是邮件格式应该是 HTML

4 个答案:

答案 0 :(得分:2)

有关mailto:protocol sytax

的更多信息,请参阅以下文章

http://www.ianr.unl.edu/internet/mailto.html

  

MailTo命令可以执行更多操作   输入一个电子邮件地址   激活你的“发送到”字段   电子邮件程序。它还可以:特征
  语法地址消息为多个   收件人,(逗号分隔   电子邮件地址)添加条目   “主题”字段主题=主题字段   文本在“复制到”中添加条目或   “CC”字段cc = ip@internet.node添加   进入“盲目复制到”或“BCC”   field bcc=id@internet.node添加条目   在“Body”字段body =您的消息   在体内使用“%0A”表示   新行,使用“%0A%0A”表示新行   前面有一个空行(段落),   见下面的例子。

     

注意:

     

“”(开头和结尾两倍   引号)是必要的,如果有任何空格   使用

     

Mailto参数前面应该是   “?”对于第一个或唯一的参数   和“&”第二次和随后的   参数。

我怀疑附件。我不认为你可以使用mailto链接申请附件。但仍然可以看看是否有人知道这一点。

答案 1 :(得分:1)

如果你想用c#以编程方式发送邮件,那么C#将使用“使用System.Net.Mail”命名空间。 SmtpClient和MailMessage类可以帮助您显式发送使用CC和BB配置的邮件以及主题设置。 例如;

//instance of mail message
                MailMessage mail = new MailMessage();

                //create instance of smtpclient
                SmtpClient smtp = new SmtpClient();

                smtp.EnableSsl = true;

                //recipient address
                mail.To.Add(new MailAddress(userid));

                //Formatted mail body
                mail.IsBodyHtml = true;
                string st = ""; 
st += "<HTML><BODY>";
                        st += "<span style='font-family: Verdana; font-size: 9pt'>";
                        st += "Dear Sir/Madam,<br/><br/>";
                        st += "We refer to your request for reseting your login password.";
                        st += "Please take note of your Login Password, as you need them every time you login.<br/><br/>";
                        st += "<b>Email/Userid: " + userid + "</b><br/>";
                        st += "<b>Password: " + password + "</b><br/><br/>";
                        st += "Regards</br>";
                        st += "XYZ Team";
                        st += "</span><br />";
                        st += "</HTML></BODY>";         
                        mail.Body = st;

                //send mail via smtp client
                smtp.Send(mail);        

以下是需要在APP.config中完成的SMTP客户端的配置设置:

> <system.net>
>     <mailSettings> <smtp from="">
>         <network host="" port="" userName="" password=""
> defaultCredentials="false" />
>       </smtp>  </mailSettings>   </system.net>

注意:您也可以通过代码定义这些值。

希望它有所帮助。

答案 2 :(得分:0)

答案 3 :(得分:0)

所以问题有点令人困惑:应用程序是否需要自动化Outlook和Thunderbird,还是需要使用C#向使用Outlook和Thunderbird的客户端发送电子邮件?

如果您需要自动化第三方应用程序,请查看VBA for Outlook。 (我不确定Thunderbird是否可以通过这种方式实现自动化,因为我不相信它具有外部可见的宏语言。但鉴于Zawinski's Law of Software Envelopment的必然结果是每个应用程序都获得了一种宏语言来发送电子邮件我可能错了。)

如果要从C#应用程序发送邮件,请查看MailMessage(MSDN)组件。这应该做你需要的一切。您需要适当地配置它以MIME格式text/html发送邮件:MSDN有一个如何执行此操作的示例here,其中还包括不能或不会的用户的备用视图阅读HTML邮件。