在IIS中的默认SMTP虚拟服务器的属性中,“中继限制”已设置好。程序中的代码如下:
Server.ScriptTimeout = 1000;
Response.Flush(); SmtpMail.SmtpServer = "localhost";
MailMessage mail = new MailMessage();
mail.To = "[email protected]";
mail.From = "这里可以随便写吧";
mail.Subject = "管理员回复";
mail.Body = "您发布的物品已通过审批!"; try
{
SmtpMail.Send(mail);
}
catch(Exception ex)
{
Response.Write(ex.ToString());
} Response.Flush();发送时,程序不报错,但那个目标邮箱总是收不到邮件,大家帮我看看啊,是iis还需要其他的设置,还是代码有问题?
Server.ScriptTimeout = 1000;
Response.Flush(); SmtpMail.SmtpServer = "localhost";
MailMessage mail = new MailMessage();
mail.To = "[email protected]";
mail.From = "这里可以随便写吧";
mail.Subject = "管理员回复";
mail.Body = "您发布的物品已通过审批!"; try
{
SmtpMail.Send(mail);
}
catch(Exception ex)
{
Response.Write(ex.ToString());
} Response.Flush();发送时,程序不报错,但那个目标邮箱总是收不到邮件,大家帮我看看啊,是iis还需要其他的设置,还是代码有问题?
ConfigurationClass conf=new ConfigurationClass();
conf.Fields[CdoConfiguration.cdoSendUsingMethod].Value=CdoSendUsing.cdoSendUsingPort;
conf.Fields[CdoConfiguration.cdoSMTPServer].Value="smtp.56.com";
conf.Fields[CdoConfiguration.cdoSMTPServerPort].Value=25;
conf.Fields[CdoConfiguration.cdoSMTPAccountName].Value="username";
conf.Fields[CdoConfiguration.cdoSendUserReplyEmailAddress].Value="\"username\" <[email protected]>";
conf.Fields[CdoConfiguration.cdoSendEmailAddress].Value="\"username\" <[email protected]>";
conf.Fields[CdoConfiguration.cdoSMTPAuthenticate].Value=CdoProtocolsAuthentication.cdoBasic;
conf.Fields[CdoConfiguration.cdoSendUserName].Value="usrname";conf.Fields[CdoConfiguration.cdoSendPassword].Value="password";conf.Fields.Update();MessageClass msg=new MessageClass();
msg.Configuration=conf;
msg.To=mail;
msg.Subject="邮件主题!";msg.TextBody=sb.ToString();
msg.From="[email protected]";
msg.Send();-------------------------------------------------------------------------
用用户名和密码认证的方式,来使用别人的SMTP服务器,不是更爽吗
呵呵,我一直用的这个方法