我是ASP.NET C#领域的新手.我打算通过ASP.NET C#发送邮件,这是我的ISP的SMTP地址:
smtp-proxy.tm.net.my
Run Code Online (Sandbox Code Playgroud)
以下是我尝试做的,但失败了.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="SendMail" %>
<html>
<head id="Head1" runat="server"><title>Email Test Page</title></head>
<body>
<form id="form1" runat="server">
Message to: <asp:TextBox ID="txtTo" runat="server" /><br>
Message from: <asp:TextBox ID="txtFrom" runat="server" /><br>
Subject: <asp:TextBox ID="txtSubject" runat="server" /><br>
Message Body:<br>
<asp:TextBox ID="txtBody" runat="server" Height="171px" TextMode="MultiLine" Width="270px" /><br>
<asp:Button ID="Btn_SendMail" runat="server" onclick="Btn_SendMail_Click" Text="Send Email" /><br>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
以下是我的代码隐藏:
using System;
using System.Web.UI.WebControls;
using System.Net.Mail;
public partial class SendMail …Run Code Online (Sandbox Code Playgroud) 我将我的MailSettings存储在web.config中,但是当我发送邮件时,我的SMTP服务器报告我需要使用身份验证.我在配置文件中有我的用户名/密码,但它仍然失败.
如果我执行以下操作,它可以工作,但这似乎是一个额外的步骤.它不应该只从配置文件中获取并自动使用身份验证吗?
System.Configuration.Configuration config = WebConfigurationManager.OpenWebConfiguration(
HttpContext.Current.Request.ApplicationPath);
MailSettingsSectionGroup settings =
(MailSettingsSectionGroup) config.GetSectionGroup("system.net/mailSettings");
SmtpClient client = new SmtpClient();
client.Credentials = new NetworkCredential(
settings.Smtp.Network.UserName, settings.Smtp.Network.Password);
Run Code Online (Sandbox Code Playgroud)
Web.config文件
<system.net>
<mailSettings>
<smtp from="me@xyz.com" deliveryMethod="Network">
<network host="mail.xyz.com" defaultCredentials="true"
userName="me@xyzcom" password="abc123" />
</smtp>
</mailSettings>
</system.net>
Run Code Online (Sandbox Code Playgroud)
System.Net.Mail.SmtpException
超出存储分配.服务器响应是:请使用smtp身份验证.请参见 http://www.myISP.com/support/smtp-authentication.aspx
"超出存储分配"困扰了我们很长一段时间,我们现在忽略它.这是"使用smtp身份验证"似乎很重要.
我有一个.Net应用程序.我希望这个应用程序向我发送电子邮件.如何在不安装SMTP服务器的情况下实现此目的?
我正在开发用于发送电子邮件的.NET 3.5库的问题.我把system.net配置放入app.config:
<system.net>
<mailSettings>
<smtp from="mail@domain.com">
<network host="myserver.com" port="25" defaultCredentials="true" />
</smtp>
</mailSettings>
</system.net>
Run Code Online (Sandbox Code Playgroud)
我实例化没有参数的SmtpClient:
SmtpClient client = new SmtpClient();
Run Code Online (Sandbox Code Playgroud)
但是没有读取配置(我正在尝试用NUnit测试库)而且我得到了一个System.InvalidOperationException,因为没有读取配置,因此主机为空.
不应该自动读取配置吗?