2012-02-15 40 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

もう1つの問題:私はまだ開発段階にいるので、例のようにmailSettingsを "SpecifiedPickupDirectory"に設定しました。私が問題のある行についてコメントしても、電子メールは送信されますが、「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

それは私がまだユーザーの電子メールの確認で立ち往生だとしようとしますなどのユーザモデルを設定する方法

をSMTPホストの問題ラウンドを取得する方法について説明し、だけでなく、私はそれを並べ替えるかどうかを教えてください。

ただし、通常のメールを送信する必要はありません。だから、私の助言はあなたが電子メールが正常に動作するまで、今は外しておくことです。

私は電子メールの検証を並べ替えるときに役立ちます、そして私はあなたに戻ってきます!私はあきらめたサンプルで提案されているコードを使用して問題を解決しようとして数日後に苦労し

乾杯

チューイー

関連する問題