0

可能重复:
发送电子邮件 asp.net c#

我之前曾多次使用该技术发送过邮件,但不知何故它不起作用我提供以下代码:

MailMessage myMailMessage = new MailMessage();
            myMailMessage.Subject = "Response From Client";
            myMailMessage.Body = "hello word";
            myMailMessage.From = new MailAddress("mymail@gmail.com", "jub");
            myMailMessage.To.Add(new MailAddress("mymail@gmail.com", "Softden"));

            SmtpClient mySmtpClient = new SmtpClient();
            mySmtpClient.Send(myMailMessage);

我的 web.config 是:

<mailSettings>
      <smtp deliveryMethod = "Network" from="Jubair &lt;mymail@gmail.com&gt;">
        <network defaultCredentials="false" enableSsl="true" userName="mymail@gmail.com" password="Mypassword" host="smtp.gmail.com" port="587"></network>
      </smtp>
    </mailSettings>

它说 smtp 服务器需要安全连接或客户端未通过身份验证..请帮助

4

4 回答 4

4

尝试在 Stackoverflow 上添加类似 Per Dominic 的回答,看看他下面的例子

using System.Net;
using System.Net.Mail;

var fromAddress = new MailAddress("from@gmail.com", "From Name");
var toAddress = new MailAddress("to@example.com", "To Name");
const string fromPassword = "fromPassword";
const string subject = "Subject";
const string body = "Body";

var smtp = new SmtpClient
           {
               Host = "smtp.gmail.com",
               Port = 587,
               EnableSsl = true,
               DeliveryMethod = SmtpDeliveryMethod.Network,
               //UseDefaultCredentials = false,
               Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
           };
using (var message = new MailMessage(fromAddress, toAddress)
                     {
                         Subject = subject,
                         Body = body
                     })
{
    smtp.Send(message);
}

//----------------- 下面是一个简单的方法 --------------- 我刚刚在下面测试了它并且它有效

var mail = new MailMessage();

// Set the to and from addresses.
// The from address must be your GMail account
mail.From = new MailAddress("noreplyXYZ@gmail.com");
mail.To.Add(new MailAddress(to));

// Define the message
mail.Subject = subject;
mail.IsBodyHtml = isHtml;
mail.Body = message;

// Create a new Smpt Client using Google's servers
var mailclient = new SmtpClient();
mailclient.Host = "smtp.gmail.com";//ForGmail
mailclient.Port = 587; //ForGmail


// This is the critical part, you must enable SSL
mailclient.EnableSsl = true;//ForGmail
//mailclient.EnableSsl = false;
mailclient.UseDefaultCredentials = true;

// Specify your authentication details
mailclient.Credentials = new System.Net.NetworkCredential("fromAddress@gmail.com", "xxxx123");//ForGmail
mailclient.Send(mail);
mailclient.Dispose();

//.config 设置有两个关于如何设置的选项我怀疑这是你遇到的问题

<system.net>
    <mailSettings>
      <smtp from="from@gmail.com" deliveryMethod="Network">
        <network userName="from@gmail.com" password="mypassword" host="smtp.gmail.com" port="587"/>
      </smtp>             
    </mailSettings>
  </system.net>

或选项 2

<configuration>
    <appSettings>
        <add key="smtpClientHost" value="mail.localhost.com"/> //SMTP Client host name
        <add key="portNumber" value="587"/>
        <add key="fromAddress" value="yourEmailAddress@gmail.com"/>
    </appSettings>
</configuration>
于 2013-01-24T05:08:18.110 回答
0

从 Yahoo、Gmail、Hotmail (C#) 发送电子邮件
http://www.codeproject.com/Tips/520998/Send-Email-from-Yahoo-Gmail-Hotmail-Csharp

于 2013-01-24T05:10:49.633 回答
0

这些都是带有示例的很好的教程。制作您的演示电子邮件 ID。将您的 id 及其密码作为参数传递。并将邮件发送给任何人。

http://www.codeproject.com/Articles/15807/Easy-SMTP-Mail-Using-ASP-NET-2-0

http://www.codeproject.com/Tips/371417/Send-Mail-Contact-Form-using-ASP-NET-and-Csharp

http://www.codeproject.com/Tips/490604/Sending-mail-using-ASP-NET-with-optional-parameter

如果您仍然无法发送电子邮件,请确保更改端口号。但是587应该可以正常工作。

于 2013-01-24T05:10:54.690 回答
0

确保您联系电子邮件服务器端以查看他们接受中继的身份验证类型。

于 2013-01-24T05:11:21.587 回答