Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么只有在web.config中设置了from/host,SmtpMail才会发送?_C#_Asp.net - Fatal编程技术网

C# 为什么只有在web.config中设置了from/host,SmtpMail才会发送?

C# 为什么只有在web.config中设置了from/host,SmtpMail才会发送?,c#,asp.net,C#,Asp.net,我正在尝试使用SmtpMail发送电子邮件。在我的本地服务器上,即使代码中设置了主机/服务器、密码和发件人信息,我也可以这样做。在我的托管服务(1和1)上,只有我在web.config文件中设置了这些内容,它才会发送!有人知道这可能是什么原因吗(1和1都不知道) 在本地工作,但不在托管服务上工作 <%@ Page language="c#" %> <%@ Import namespace="System.Net.Mail" %> <% MailMessag

我正在尝试使用SmtpMail发送电子邮件。在我的本地服务器上,即使代码中设置了主机/服务器、密码和发件人信息,我也可以这样做。在我的托管服务(1和1)上,只有我在web.config文件中设置了这些内容,它才会发送!有人知道这可能是什么原因吗(1和1都不知道)

在本地工作,但不在托管服务上工作

<%@ Page language="c#" %>
<%@ Import namespace="System.Net.Mail" %>
<%

    MailMessage mail = new MailMessage();

    //Set my from address
    mail.From = new MailAddress( "myemail@myemail.com");

    //Who I'm sending to
    mail.To.Add( new MailAddress("you@you.com") );

    mail.Subject = "A test";
    mail.Body = "Test message";

    //Set the mail server (default should be smtp.1and1.com)
    SmtpClient smtp = new SmtpClient( "smtp.1and1.com" );

    //Enter your full e-mail address and password
    smtp.Credentials = new NetworkCredential("myemail@myemail.com", "mypassword");

    //Send the message
    smtp.Send(mail);

%>

(和web.config)


我发现您在使用本地代码时没有设置SMTP端口,而是在web.config中进行了设置。您是否尝试过像这样手动添加SMTP端口:

smtp.Port = 25;

另外,您是否尝试过手动设置EnableSsL属性

如果不在web.config中设置,会发生什么?我假设你有错误,错误是什么?@CodingGorilla是的,根据浏览器的不同,我会得到不同的东西。在Firefox中,它要求我下载“test.aspx”文件,但说是0字节。在IE中,它说有一个超时错误。这真的没有任何意义,如果你被提示下载文件,那么服务器返回了错误的内容类型。在任何一种情况下,您都不会看到任何错误消息?@CodingGorilla在IE中我看到一个超时错误(这是一个SMTP错误),我没有尝试设置端口(但这不是默认端口吗?)。我确实尝试了“EnableSsl”,但没有帮助。是的,25是默认端口,但谁知道可能是什么原因。我总是先尝试简单的事情,然后再去做更复杂的事情。
    <configuration>
    <system.net>
        <mailSettings>
            <smtp from="myemail@myemail.com">
                <network host="smtp.1and1.com" port="25" userName="myemail@myemail.com" password="mypassword"/>
            </smtp>
        </mailSettings>
    </system.net>
</configuration>
smtp.Port = 25;