0

我只是在测试从本地主机发送到 gmail.com 的电子邮件

***Webconfig:***

<system.net>
<mailSettings>
  <smtp>
    <network 
      host="localhost"
       port="25"
        />
  </smtp>
</mailSettings>
</system.net>

***Default.aspx:***

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"  Inherits="MasterApps._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />      

</div>
</form>
</body>
</html>

***Code behind is:***

protected void Button1_Click(object sender, EventArgs e)
{

        MailAddress from = new MailAddress("mwaghela7@gmail.com");
        MailAddress to = new MailAddress("mwaghela7@gmail.com");
        MailMessage msg = new MailMessage(from, to);
        msg.Subject = "hi";
        msg.Body = "hello";
        SmtpClient sc = new SmtpClient();
        sc.Send(msg);

}

它的触发错误如下:

* System.dll 中出现“System.Net.Mail.smtp failedReceipientExeception”类型的异常,但未在用户代码中处理。附加信息:邮箱不可用。服务器响应为:5.7.1。无法中继 mwaghela7@gmail.com

上面的代码有什么问题?如何解决这个问题?

4

3 回答 3

3

好吧,在大多数情况下,由于指定的端口号或您没有建立安全连接,电子邮件无法发送。试试这个替代方案。单击此处,您可以下载一些用于向所有域发送电子邮件的类文件。首先添加对 EASendMail 的引用。然后像这样编码。

using EASendMail;
 SmtpMail oMail = new SmtpMail("Tryit");
                    SmtpClient oSmtp = new SmtpClient();

            //        
                    oMail.From = "eamil";

            //        // Set recipient email address
                    oMail.To = "email@domain.com";

                    // Set email subject
                   oMail.Subject = "subject";

                    // Set email body
                    oMail.TextBody = "body";


                    SmtpServer oServer = new SmtpServer("smtp.gmail.com");


                    oServer.User = "email";
                    oServer.Password = "password";



                   oServer.Port = 465;

            //detect SSL type automatically
                 oServer.ConnectType = SmtpConnectType.ConnectSSLAuto;
                    oSmtp.SendMail(oServer, oMail);
于 2013-04-10T08:22:17.027 回答
0

尝试这个。`

using (var client = new SmtpClient("smtp.gmail.com", 587))
            {
                client.Credentials = new NetworkCredential("you@gmail.com","password");
               var mail = new MailMessage();
                mail.From = new MailAddress("email");
                mail.To.Add("email");
                mail.Subject = "something";
                mail.Body = "body";
               client.Send(mail);

`

于 2013-04-10T07:58:09.827 回答
0

您的邮件服务器可能不支持匿名发送邮件。您可以将邮件发送给您邮件服务器中的用户。

尽管如下编辑您的 web.config 代码,然后尝试:

<system.net>
    <mailSettings>
        <smtp deliveryMethod="Network">
            <network host="localhost"
                port="25"
                from="no-reply@me.com"/>
        </smtp>
    </mailSettings>
</system.net>
于 2013-04-10T07:32:25.777 回答