通过.NET代码发送电子邮件

时间:2009-11-20 11:20:57

标签: c# email smtp

我无法向雅虎服务器发送电子邮件,因为我的代码在C#2008中将异常作为“发送邮件失败”。 请为yahoo服务器和gmail服务器提供SMTP HostName,PortName。

还要提供一个好的工作C#代码,我可以用它直接向任何邮件服务器发送电子邮件。

请提供完整的工作代码...以便我将复制到Visual Studio环境并执行相同的操作。 因为我从早上起就异常......无法解决问题。 在这方面请帮助我。

4 个答案:

答案 0 :(得分:14)

对于Gmail:

var client = new SmtpClient("smtp.gmail.com", 587);
client.EnableSsl = true;
client.Credentials = new NetworkCredential("youraccount@gmail.com", "secret");

var mail = new MailMessage();
mail.From = new MailAddress("youraccount@gmail.com");
mail.To.Add("youraccount@gmail.com");
mail.Subject = "Test mail";
mail.Body = "test body";
client.Send(mail);

对于雅虎:

var client = new SmtpClient("smtp.mail.yahoo.com", 587);
client.Credentials = new NetworkCredential("youraccount@yahoo.com", "secret");

var mail = new MailMessage();
mail.From = new MailAddress("youraccount@yahoo.com");
mail.To.Add("destaccount@gmail.com");
mail.Subject = "Test mail";
mail.Body = "test body";
client.Send(mail);            

答案 1 :(得分:0)

请记住,一些ISP(包括我的)强迫他们的客户使用他们的SMTP服务器(作为中继)。垃圾邮件保护是原因。

因此,您应该避免从客户端应用程序向Internet发送电子邮件,除非您让用户有机会指定其SMTP主机名,或者您的应用程序依赖于用户的电子邮件软件(MAPI,...)。 / p>

答案 2 :(得分:0)

想象一下,如果您发布了完整的异常消息以及堆栈跟踪,那么我们将更容易为您提供帮助。

此外,更进一步并启用System.Net.Mail的日志记录,以便我们可以在网络级别看到任何可能的故障。

如果您不知道如何为SNM启用日志记录,请参阅以下链接:

http://systemnetmail.com/faq/4.10.aspx

谢谢!

戴夫

答案 3 :(得分:0)

我们可以通过两种方式发送邮件,

1)首先使用javascript链接“mailTo”。这不会自动发送邮件,但只会打开邮件窗口。请参阅下面的代码

   <a class="label" onclick='javascript:buildEmail(this)'>Send Mail</a>

在下面找到js方法

     function buildEmail(el) {
 var emailId = Usermail@gmail.com;
  var subject="Hi";
 var body="Hello";
  el.href = "mailto:" + emailId + "?Subject=" + escape(subject) +
                                            "&Body=" + escape(body);
}

2)第二种方法是使用System.Net.Mail,它将以安全的方式自动将邮件发送给收件人。

    string subject="Hello";
       string body="Data"; 
       using ( MailMessage objMail = new MailMessage ( "Yourmail@gmail.com", "Usermail@gmail.com" ) )//From and To address respectively
                {
                    objMail.IsBodyHtml = false;// Message format is plain text
                    objMail.Priority = MailPriority.High;// Mail Priority = High
                    objMail.Body = "Hello";
                    ArrayList CCarr = new ArrayList();//Assume we add recipients here

                   // populate additional recipients if specified
                    if ( ( CCarr != null ) && ( CCarr .Count > 0 ) )
                    {
                        foreach ( string recipient in CCarr )
                        {
                            if ( recipient != "Please update the email address" )
                            {
                                objMail.CC.Add ( new MailAddress ( recipient ) );
                            }
                        }
                    }

                     // Set the subject of the message - and make sure it is CIS Compliant
                        if ( !subject.StartsWith ( "SigabaSecure:" ) )
                        {
                            subject = "SigabaSecure: " + subject;
                        }   
                  objMail.Subject = subject;

                   // setup credentials for the smpthost
                    string username =  "Username";
                    string passwd =     "xxxxxx";
                    string smtpHost =  "mail.bankofamerica.com";

                    SmtpClient ss = new SmtpClient ();
                    ss.EnableSsl= true;
                    ss.Host = smtpHost;
                    ss.Credentials = new NetworkCredential ( username, passwd );
                    ss.Send ( objMail );
}

Sigaba Secure Email通过使用桌面插件和基于Web的身份验证和解密来保护从客户端到客户端的电子邮件。