ade*_*ena 6 c# email smtpclient mailmessage
这是我写的代码:
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);
Run Code Online (Sandbox Code Playgroud)
它不起作用.我在"client.Send(mail)"行显示"邮箱不可用.服务器响应是(MYLOCALCOMPUTERNAME)[我的本地IP]:3045目前不允许中继通过."
connectAccess.Access确实返回"连接"(我不确定这是否必要......我已将其添加进入以启动故障排除过程.)
这是否意味着我的本地机器必须以某种方式配置?当我将我的应用程序部署到其他人机器时呢?那里需要本地配置吗?我只是想从我的应用程序创建一个"发送反馈"类型的链接.
(注意:在我的实际应用程序中,我使用的是"to"和"from"中的真实电子邮件地址,而我的smtp实际上是我托管我的网址/网站的地方的smtp地址)
谢谢!
-Adeena
@Michael:谢谢你的链接.这非常有帮助.
我想我弄明白了我的问题.在创建"客户端"对象后,我确实需要添加登录凭据.我添加了以下行:
client.Credentials = new System.Net.NetworkCredential("myloginat+myurl.com", "mypassword");
Run Code Online (Sandbox Code Playgroud)
(对不起 - 我有这个习惯,我在网上搜索答案后,通过我的手册2小时后,我终于打破并发布问题,然后5分钟后弄明白.:)我认为写作的行为这个问题比其他任何事都更有帮助)
所以它正在工作......虽然我不会声称我理解它的工作方式和原因,所以我确实会遇到一些问题,因为我将程序交给其他人使用.即,每个使用具有互联网连接的程序的人都能够打开这个smtp连接到我的服务器吗?我不知道答案......我将不得不等待,看到并学习更多.
谢谢!:)
-Adeena
目标地址与您的 smtp 服务器位于同一主机上吗?如果不是,这将解释中继错误。
您使用的 SMTP 服务器必须是邮件消息的最终目的地或邮件交换中的第一跃点。例如,如果您从 gmail 地址向 yahoo 地址发送邮件,则第一个查看该邮件的邮件服务器必须是您的 gmail 服务器或 yahoo 服务器。中间的服务器将拒绝该消息,因为它们已禁用中继(以减少垃圾邮件等)。
如果它们是同一主机,您可以通过其他方式直接向其发送邮件吗?
通过 telnet 尝试此测试,看看您的 smtp 服务器是否运行正常:http://www.messagingtalk.org/content/470.html
归档时间: |
|
查看次数: |
11312 次 |
最近记录: |