游戏也迟到了,但我今天早些时候遇到了类似的问题......
DNN sendMail 或 sendEmail 方法自行处理异常,并将其添加到 DNN 日志中。不幸的是,它们从不将所述异常返回给您调用函数的主代码 - 因此您的代码执行得很好!
您可以进一步查看他们的异常表或 UI 中的管理日志,以获取有关您遇到的特定问题的更多信息。
我将代码更改为使用System.Net发送电子邮件并从 DNN 中的 DotNetNuke.Entities.Host.Host 对象收集您需要的所有信息。这样,我们可以处理错误并让我们的代码解决它:) 我最终得到了这样的东西(它在 c# 中,但你可以在 VB.Net 中使用稍微不同的语法来做同样的事情):
//make the email
MailMessage mail = new MailMessage("From@me.com","to@a.com,to@b.com,to@c.com");
mail.Subject = "test subject";
mail.Body = "actual email";
string dnnServerInfo = DotNetNuke.Entities.Host.Host.SMTPServer;
// The above looks like "server.com:port#", or "smtp.server.com:25"
//so we find the colon to get the server name, and port using the index below
int index = dnnServerInfo.IndexOf(':');
//make the SMPT Client
SmtpClient smtp = new SmtpClient();
smtp.Host = dnnServerInfo.Substring(0, index);
smtp.Port = Int32.Parse(dnnServerInfo.Substring(index + 1, dnnServerInfo.Length - index - 1));
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.UseDefaultCredentials = false;
smtp.Credentials = new System.Net.NetworkCredential(DotNetNuke.Entities.Host.Host.SMTPUsername, DotNetNuke.Entities.Host.Host.SMTPPassword);
smtp.EnableSsl = DotNetNuke.Entities.Host.Host.EnableSMTPSSL;
//send the email
smtp.Send(mail);
我使用了此处找到的“SendMail”中的部分原始代码来提出这个:https ://stackoverflow.com/a/19515503/6659531
祝任何遇到这个的人好运:)