我有一个邮件服务器,它与我的手机在同一个网络上托管,但我不断收到Unknow SMTP host
的例外情况。当然,我已经阅读了几个地方,当主机名拼写不正确时会发生此异常。但在这种情况下, IS 。在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类中,我定义了一个包含主机<{1}}地址的字符串
DNS
在尝试连接之前,我想验证发送邮件的邮件地址的用户名和密码:
_host = "napserver"; // default smtp server
_port = "25"; // default smtp port
然后尝试连接并发送消息
Session session = Session.getInstance(props, new GMailAuthenticator(_user, _pass));
出于测试目的,我尝试了Gmail的 Transport transport = session.getTransport("smtp");
transport.connect(_host, 25, _user, _pass);
Transport.send(msg);
地址,这样就可以了,邮件也被发送到指定的邮件帐户。任何人都可以给我一个提示吗?
修改
我还应该提一下,我尝试通过SMTP
连接到此邮件服务器,以及与主机Telnet
和端口napserver
连接时PuTTy的输出:
25
编辑2
从PuTTy输出中可以看出:
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
我的邮件服务器使用ESMTP,但据我所知,这只是实现了一些安全层,依此类推。也许这就是错误所在?
编辑3
我尝试通过远程桌面访问邮件服务器,我为了确保服务器和手机位于同一网络上而对我的手机IP地址进行了ping操作,它是..