我无法向雅虎服务器发送电子邮件,因为我的代码在C#2008中将异常作为“发送邮件失败”。 请为yahoo服务器和gmail服务器提供SMTP HostName,PortName。
还要提供一个好的工作C#代码,我可以用它直接向任何邮件服务器发送电子邮件。
请提供完整的工作代码...以便我将复制到Visual Studio环境并执行相同的操作。 因为我从早上起就异常......无法解决问题。 在这方面请帮助我。
答案 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的身份验证和解密来保护从客户端到客户端的电子邮件。