2012-02-15 5 views
0

ActionMailer 0.7.0을 사용하여 MVC 3 프로젝트에서 전자 메일을 보내려고합니다.ActionMailer가 "값이 null 일 수 없습니다 매개 변수 이름 : uriString"

나는 프로젝트 사이트에 게시 된 샘플을 편지에 따라왔다. 나는 다음과 같은 오류가 항상 발생하는 이메일을 보내려고 할 때

그러나 :

"값은 null 일 수 없습니다 매개 변수 이름 :. 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

또 다른 문제 : 아직 개발 단계에 있으므로 예 에서처럼 "specifiedPickupDirectory"로 mailSettings를 구성했습니다. 문제가되는 행에 대해 의견을 말할 때도 전자 메일이 보내지 만 "SMTP 호스트가 지정되지 않았습니다."라는 예외도 있습니다. 누군가가 결함없이 작동하는 완전한 예를 들어 나를 도울 수 있습니까? 감사합니다 –

+0

해결책이 없다면 누군가 MVC 3으로 이메일을 보내기위한 다른 도구를 제안 할 수 있습니까? 감사... –

답변

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(); 

뷰가되었다 :

SMTP 호스트의 문제에 대한
@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! 

, 난 당신이 "SpecifiedPickupDirectory"를 제공 설정 한 경우에도의 Web.config에 당신이를 추가 할 필요가 있다는 것을 발견 빈 호스트 태그. ActionMailer 샘플에서는 지정되어 있지 않습니다. 다음은 최종 구성입니다.

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

나는 누군가를 돕기를 바랍니다.

모두에게 최고의 행운입니다.

0

방금 ​​MVC 프로젝트에 ActionMailer를 구현하는 데 몇 시간을 보냈습니다.

Scott의 스크린 캐스트가 정말 도움이되었습니다.

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

IT는 SMTP 호스트 문제의 둘레에 얻을뿐만 아니라, 어떻게 사용자 모델 등

난 아직도 사용자 이메일 확인에 갇히지하고있어하려고합니다를 설정하는 방법에 대해 설명합니다 내가 정리하면 알려주지.

그러나 '평범한'이메일을 보내지 않아도됩니다. 그래서 내 충고는 이메일을 정상적으로 작동시킬 때까지는 남겨 두는 것이 좋습니다.

도움이되는 희망, 그리고 이메일 확인을 정렬 할 때 다시 연락 드리겠습니다!

건배 내가 포기 샘플에서 제안 된 코드를 사용하여 문제를 해결하려고 몇 일을 고민 한 후 츄이

관련 문제