这是我写的代码:
MailMessage mail = new MailMessage("test@gmail.com", "me@myurl.com"); mail.Subject = "This is a test!!"; mail.Body = "testing..."; SmtpPermission connectAccess = new SmtpPermission(SmtpAccess.Connect); System.Console.WriteLine("Access? " + connectAccess.Access); SmtpClient client = new SmtpClient("mail.myurl.com", 2525); client.Send(mail);
它不起作用.我在"client.Send(mail)"行显示"邮箱不可用.服务器响应是(MYLOCALCOMPUTERNAME)[我的本地IP]:3045目前不允许中继通过."
connectAccess.Access确实返回"连接"(我不确定这是否必要......我已将其添加进入以启动故障排除过程.)
这是否意味着我的本地机器必须以某种方式配置?当我将我的应用程序部署到其他人机器时呢?那里需要本地配置吗?我只是想从我的应用程序创建一个"发送反馈"类型的链接.
(注意:在我的实际应用程序中,我使用的是"to"和"from"中的真实电子邮件地址,而我的smtp实际上是我托管我的网址/网站的地方的smtp地址)
谢谢!
-Adeena
@Michael:谢谢你的链接.这非常有帮助.
我想我弄明白了我的问题.在创建"客户端"对象后,我确实需要添加登录凭据.我添加了以下行:
client.Credentials = new System.Net.NetworkCredential("myloginat+myurl.com", "mypassword");
(对不起 - 我有这个习惯,我在网上搜索答案后,通过我的手册2小时后,我终于打破并发布问题,然后5分钟后弄明白.:)我认为写作的行为这个问题比其他任何事都更有帮助)
所以它正在工作......虽然我不会声称我理解它的工作方式和原因,所以我确实会遇到一些问题,因为我将程序交给其他人使用.即,每个使用具有互联网连接的程序的人都能够打开这个smtp连接到我的服务器吗?我不知道答案......我将不得不等待,看到并学习更多.
谢谢!:)
-Adeena