2012-02-15 82 views
0

我试图使用ActionMailer 0.7.0从我的MVC 3项目发送电子邮件。ActionMailer失败,“值不能为空参数名称:uriString”

我已经按照项目网站上发布的样本来信了。

但是,当我尝试发送以下错误总是发生电子邮件:

“值不能为空参数名:uriString中”

它发生在电子邮件正文中的@ Url.AbsoluteAction。

@using ActionMailer.Net 
@model User 

@{ 
    Layout = null; 
} 

Welcome to My Cool Site, @Model.FirstName 

We need you to verify your email. Click this nifty link to get verified! 

// The error happens in the line bellow 
@Url.AbsoluteAction("Verify", "Account", new { code = @Model.EmailActivationToken.ToString() }) 

Thanks! 

有人能帮助我吗?我错过了什么?

+0

另一个问题:我仍然在开发fase中,所以我将mailSettings配置为“SpecifiedPickupDirectory”,如示例中所示。即使当我评论有问题的电子邮件时,我也会发出异常:“SMTP主机未被指定。”有人可以帮助我一个完整的例子,没有一个小故障。谢谢 – 2012-02-15 21:14:19

+0

如果没有解决方案可以有人建议另一个工具发送电子邮件与MVC 3?谢谢... – 2012-02-16 12:32:36

回答

1

挣扎了几天试图解决使用我放弃了样本中提出的代码的问题之后。

我已经下载了源代码,发现问题发生在你的RouteCollection不是标准的时候(这是我的情况)。

所以我找到了一个优雅的工作,为我工作。

而是将令牌发送到视图并使用Url.AbsoluteAction方法我将Url.Action与控制器中的协议参数一起使用,并发送视图模型中的完整url。就像这样:

new EmailsController().ActivationMail(new ActivationMailViewModel { Email = data.Email, FirstName = data.Name, ActivationLink = Url.Action("VerifyEmail", "Mail", new { code = data.ActivationToken.ToString() }, "http") }).Deliver(); 

的观点变成了:

@using ActionMailer.Net 
@model User 
@{ Layout = null; } 
Welcome to My Cool Site, @Model.FirstName 

We need you to verify your email. Click this nifty link to get verified! 

@Model.ActivationLink 

Thanks! 

关于SMTP主机的问题,我发现,即使你设置为提供“SpecifiedPickupDirectory的” web.config你需要添加一个空主机标签。它没有在任何ActionMailer示例中指定。这是最后的配置:

<system.net> 
    <mailSettings> 
     <smtp deliveryMethod="SpecifiedPickupDirectory"> 
     <network host="none" /> 
     <specifiedPickupDirectory pickupDirectoryLocation="C:\temp\" /> 
     </smtp> 
    </mailSettings> 
    </system.net> 

我希望它可以帮助别人。

祝大家好运。

0

我刚刚花了几个小时在我的MVC项目中实现ActionMailer。

我发现斯科特的屏幕录像真的帮了我。

http://www.youtube.com/watch?v=QQRzYo7k9Vs&hd=1

它说明了如何避开SMTP主机的问题,以及如何建立用户模型等

我仍然陷在用户的电子邮件验证,并会尝试让我知道如果我把它整理出来。

但是,您不需要发送“普通”电子邮件。因此,我的建议是暂时放弃它,直到您可以使电子邮件正常工作。

希望有帮助,我会在我整理电子邮件验证时回复您!

干杯

Chewie

相关问题