Tag: smtpclient

如何从我的C#代码隐藏发送电子邮件 – 获取System.Net.Mail.SmtpFailedRecipientException

我有一个网络表单,有人可以设置帐户 – 我想给他们发送电子邮件确认。 我正在使用的代码: // Create e-mail message MailMessage mm = new MailMessage(); mm.From = new MailAddress(“OurOrganisationEmail@ourdomain.com”, “Our Organisation”); mm.To.Add(new MailAddress(“webuser@domain.com”, “Web User”)); mm.Subject = “Confirmation”; mm.Body = “You are now registered test”; mm.IsBodyHtml = true; // Send e-mail sc = new SmtpClient(); NetworkCredential basicAuthenticationInfo = new NetworkCredential(“OurOrganisationEmail@ourdomain.com”, “ourorganisationemailPassword”); sc.Credentials = basicAuthenticationInfo; sc.UseDefaultCredentials = false; […]

从Console应用程序发送电子邮件时导致Socketexception的原因是什么?

我正在尝试编写一个将发送电子邮件的基本控制台应用程序。 问题是我一直得到Socketexception: 尝试以其访问权限xxx.xxx.x.xxx:25禁止的方式访问套接字 我关闭了我的Windows防火墙,但它没有改变任何东西。 我尝试在没有指定凭据的情况下运行它。 我也尝试使用不同的smtp服务器,包括带端口25的smtp.mail.yahoo.com和我的凭据但没有运气。 导致此exception的问题是什么? 我在Windows 7上运行VS2008。下面是我的代码示例和我得到的exception。 static void Main(string[] args) { String recipient = “recipient@email.com”; String sender = “sender@email.com”; MailMessage message = new MailMessage(); message.From = new MailAddress(sender); message.To.Add(new MailAddress(recipient)); message.Subject = “Subject”; message.Body = “Body”; SmtpClient smtp = new SmtpClient { Host = “smtp.server”, Port = 25, EnableSsl = true, DeliveryMethod […]

SmtpClient从发送服务器获取结果

SmtpClient发送方法返回void。 有没有办法得到服务器响应? 除非它抛出exception,我才假设它成功了吗? 我指的是…… http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx

在SendComplete中配置SmtpClient?

当我使用SmtpClient的SendAsync发送电子邮件时,如何正确配置smtpclient实例? 让我们说: MailMessage mail = new System.Net.Mail.MailMessage() { Body = MailBody.ToString(), IsBodyHtml = true, From = new MailAddress(FromEmail, FromEmailTitle), Subject = MailSubject }; mail.To.Add(new MailAddress(i.Email, “”)); SmtpClient sc = new SmtpClient(SmtpServerAddress); //Add SendAsyncCallback to SendCompleted sc.SendCompleted += new SendCompletedEventHandler(SendAsyncCallback); //using SmtpClient to make async send (Should I pass sc or mail into SendAsyncCallback?) sc.SendAsync(mail, sc); […]

我可以在SMTP服务器上发送未经身份validation的电子邮件吗?

我正在创建简单的电子邮件发送应用 在我的应用程序,当我发送电子邮件时,我必须把我的电子邮件地址或密码,但我不想使用密码只想放电子邮件 所以 我可以使用c#/ .net应用程序不使用密码发送电子邮件吗? 这是我的代码: try { // setup mail message MailMessage message = new MailMessage(); message.From = new MailAddress(textBox1.Text); message.To.Add(new MailAddress(textBox2.Text)); message.Subject = textBox3.Text; message.Body = richTextBox1.Text; // setup mail client SmtpClient mailClient = new SmtpClient(“smtp.gmail.com”); mailClient.Credentials = new NetworkCredential(textBox1.Text,”password”); // send message mailClient.Send(message); MessageBox.Show(“Sent”); } catch(Exception) { MessageBox.Show(“Error”); }

当SMPT服务器具有有效证书时,“根据validation过程”获取“远程证书无效”

这似乎是一个常见的错误,但是当我找到一个解决方法(见下文)时,我无法确定我首先得到它的原因。 我正在将SMTPfunction写入我们的应用程序,并且我正在尝试将SSLfunction添加到我们已有的工作SMTP中。 我正在测试使用我们公司的MS Exchange服务器,特别是在其上启用的webmail选项。 我可以通过我的代码在内部发送电子邮件,不会对我的连接进行身份validation并匿名发送,但是由于我们公司的政策,这些电子邮件不会转发到外部电子邮件地址。 除此之外,我正在为我们的客户编程,他们并不都允许开放中继和/或匿名连接。 我相信Exchange服务器正在使用显式SSL / TLS。 我已尝试telnet到端口25上的服务器地址并获得文本响应,人类可读的响应,根据我之前的一些搜索,这意味着它使用显式SSL / TLS。 我有以下测试代码 SmtpClient SMTPClient = new SmtpClient(webmailaddress); SMTPClient.Port = 25; SMTPClient.UseDefaultCredentials = true; SMTPClient.EnableSsl = true; System.Net.Mail.MailMessage Message = new ` System.Net.Mail.MailMessage(emailFrom,emailTo,subject,body); SMTPClient.Send(Message); 在我寻找解决方案期间,我遇到了“远程证书根据validation程序无效”。 使用Gmail SMTP服务器 从中我得到以下代码…… ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateServerCertificate); public static bool ValidateServerCertificate(object sender,X509Certificate certificate,X509Chain chain,SslPolicyErrors sslPolicyErrors) { if (sslPolicyErrors == SslPolicyErrors.None) […]

如何在通过SmtpClient发送电子邮件时使用http代理

我可以通过以下方式通过Yahoo电子邮件发送电子邮件。 但我的问题是,我是否可以使计算机在连接​​雅虎服务器时使用代理? 我的意思是使用代理连接来连接雅虎smpt服务器。 这可能吗 ? 谢谢 public static bool func_SendEmail(string srFrom, string srSenderEmail, string srSenderEmailPw, string srHtmlBody, string srTextBody, string srTitle, string srProxy) { try { using (MailMessage message = new MailMessage(new MailAddress(srSenderEmail, srFrom), new MailAddress(srSenderEmail))) { message.ReplyTo = new MailAddress(srSenderEmail, srFrom); message.IsBodyHtml = false; message.Subject = srTitle; message.SubjectEncoding = System.Text.Encoding.UTF8; AlternateView textPart = AlternateView.CreateAlternateViewFromString(srTextBody, […]

SmtpClient.Send附件最大尺寸

我正在尝试使用SmtpClient.Send()方法在asp.net页面中发送附件邮件。 它可以正常使用2mb文件。 当我尝试7mb附件文件时,它说: 邮件发送失败。 使用SmtpClient.Send(message)方法发送邮件的最大大小是多少。 为什么上面的错误会来…..?

从SignalR中心发送异步邮件

我需要通过SignalR集线器调用发送电子邮件。 我不希望send同步执行,因为我不想绑定WebSocket连接,但是如果可能的话,我希望通知调用者是否有任何错误。 我以为我可以在集线器中使用这样的东西(减去error handling和我希望它做的所有其他事情): public class MyHub : Hub { public async Task DoSomething() { var client = new SmtpClient(); var message = new MailMessage(/* setup message here */); await client.SendMailAsync(message); } } 但很快发现它不起作用; client.SendMailAsync调用抛出这个: System.InvalidOperationException:此时无法启动异步操作。 异步操作只能在异步处理程序或模块中启动,或者在页面生命周期中的某些事件中启动。 进一步的调查和阅读表明,SmtpClient.SendMailAsync是围绕EAP方法的TAP包装器,而SignalR不允许这样做。 我的问题是,有没有简单的方法直接从集线器方法发送电子邮件? 或者我唯一的选择是将电子邮件发送到其他地方? (例如,让集线器队列成为服务总线消息,然后一个独立的服务可以处理这些消息并发送电子邮件[虽然我也有更多的工作来实现将结果通知回集线器的客户端];或者让集线器向发送电子邮件的Web服务发出HTTP请求。

SmtpException:仅为具有ASCII本地部分的电子邮件地址配置客户端或服务器

当我尝试将电子邮件发送到包含突出字符(é)的地址时, SmtpClient.Send()方法抛出此exception: System.Net.Mail.SmtpException:仅为具有ASCII本地部分的电子邮件地址配置客户端或服务器:léo.xxx@example.com。 在System.Net.Mail.MailAddress.GetAddress(布尔allowUnicode) 在System.Net.Mail.SmtpClient.ValidateUnicodeRequirement(MailMessage …) 在System.Net.Mail.SmtpClient.Send(MailMessage消息) 消息的制定使我可能有一个设置,我可以激活,以使这项工作,虽然我没有找到任何关于这个主题。 我尝试了几种SMTP服务器,包括Gmail。 以下是repro的相关位: 码 var msg = new MailMessage(); msg.Subject = “Test”; msg.From = new MailAddress(“xxx@gmail.com”); msg.To.Add(new MailAddress(“léo.yyy@gmail.com”)); new SmtpClient().Send(msg); 的app.config