我有一个邮件服务器,它与我的手机在同一个网络上托管,但我不断收到异常消息Unknow SMTP host
。当然,我已经阅读了几个地方,当主机名拼写不正确时会发生此异常。但在这种情况下它是。在C#
它完成一个简单的方式是这样的:
var client = new SmtpClient(_strSmtpHost);
client.UseDefaultCredentials = true;
var mailMessage = new MailMessage(_strFrom, emailTo);
mailMessage.Subject = subject;
mailMessage.Attachments.Add(attachment);
client.Send(mailMessage);
在我的应用程序中,它是这样完成的:
SendMail m = new SendMail("Username", "password");
String[] toArr = {"TO@EXAMPLE.com"};
m.setTo(toArr);
m.setFrom("FROM@EXAMPLE.com");
m.setSubject("This is an email sent using my Mail JavaMail wrapper from an Android device.");
m.setBody("Email body.");
try {
m.addAttachment(fileName);
if(m.send()) {
Log.i("MAIL SENDER: ", "Succesfully");
} else {
Log.i("MAIL SENDER: ", "UnSuccesfully");
}
} catch(Exception e) {
Log.e("MailApp", "Could not send email" + e);
}
在我的 SendMail 类中,我定义了一个包含DNS
主机地址的字符串
_host = "napserver"; // default smtp server
_port = "25"; // default smtp port
在尝试进行连接之前,我想验证发送邮件的邮件地址的用户名和密码:
Session session = Session.getInstance(props, new GMailAuthenticator(_user, _pass));
然后尝试连接并发送消息
Transport transport = session.getTransport("smtp");
transport.connect(_host, 25, _user, _pass);
Transport.send(msg);
只是为了测试目的,我尝试了SMTP
Gmail 的地址,这很有效,邮件被发送到指定的邮件帐户。任何人都可以给我一个提示吗?
编辑
我还应该提到,当与主机和端口连接时,我尝试通过连接Telnet
到此邮件服务器以及 PuTTy 的输出:napserver
25
220 napserver.nap01.dac.no.eu-admin.net Microsoft ESMTP MAIL Service, Version: 6 .0.3790.3959 ready at Tue, 7 Aug 2012 13:38:55 -0700
编辑 2
从 PuTTy 输出中可以看到:
Microsoft ESMTP MAIL Service
我的邮件服务器使用 ESMTP,但据我所知,这只是实现了一些安全层等等。也许这就是错误所在?
编辑 3
我试图通过远程桌面访问邮件服务器,我ping我的手机IP地址只是为了确保服务器和手机位于同一个网络上,而且它是..