2012-01-19 10 views
11

EWS Managed APIを使用してメールを送信しています。アカウント「アカウント @ domain.com」には、「送信者 @ domain.com」メールボックスを使用してメッセージを送信するためのアクセス許可「送信者」があります(Outlookからは正常です)。EWS Managed API:メールを送信元から設定する方法は?

しかし、私はコードから試してみます - それは仕事ではありません、私はフィールド "From" "アカウント @ domain.com"で読んでいます。

.... 
EmailMessage message = new EmailMessage(service); 
message.Body = txtMessage; 
message.Subject = txtSubject; 
message.From = txtFrom; 
.... 
message.SendAndSaveCopy(); 

他のユーザーの代わりにメールを送信するにはどうすればよいですか? :)

答えて

6

私は同じことを真っ直ぐにしてからしばらくしていました。私は、 "Send as"という権利にもかかわらず、不可能であると結論づけました。

偽装は、EWSで行くための唯一の方法である、MSDNを参照してください。

ExchangeService service = new ExchangeService(); 
service.UseDefaultCredentials = true; 
service.AutodiscoverUrl("[email protected]"); 

// impersonate user e.g. by specifying an SMTP address: 
service.ImpersonatedUserId = new ImpersonatedUserId(
    ConnectingIdType.SmtpAddress, "[email protected]"); 

偽装が有効になっていない場合、あなたはあなたが行動したい人に代わって、ユーザーの資格情報を提供する必要があります。 this MSDN articleを参照してください。

ExchangeService service = new ExchangeService(); 
service.Credentials = new NetworkCredential("user", "password", "domain"); 
service.AutodiscoverUrl("[email protected]"); 

また、reply-to addressを指定することもできます。

EmailMessage mail = new EmailMessage(service); 
mail.ReplyTo.Add("[email protected]"); 

しかし、ちょうど電子メールを送信する際に、多くの場合、うまくやるだろうSystem.Net.Mailを使用してメールを送信する際にが適用されない権利「として送信します」。 tons of exampleshow to do thisを示しています。

// create new e-mail 
MailMessage mail = new MailMessage(); 
mail.From = new MailAddress("[email protected]"); 
mail.To.Add(new MailAdress("[email protected]")); 
message.Subject = "Subject of e-mail"; 
message.Body = "Content of e-mail"; 

// send through SMTP server as specified in the config file 
SmtpClient client = new SmtpClient(); 
client.Send(mail); 
+0

、このにはセッターがありません。 public EmailAddressCollection ReplyTo {get; } – RobDigital

+0

右のコレクションです。したがって、あなたは 'mail.ReplyTo.Add(" [email protected] ")'を実行する必要があります。 - 上記の例を修正します。 – bernhof

+0

偽装を使用するmail.sendでエラーが発生します。 - メールボックスを参照するときにプライマリSMTPアドレスを指定する必要があります – markthewizard1234

0

私はあなたのコードは次のようになりますので、あなたがSenderプロパティを使用すべきだと思う:mail.ReplyToは動作しません

EmailMessage message = new EmailMessage(service); 
message.Body = txtMessage; 
message.Subject = txtSubject; 
message.Sender= txtFrom; 
.... 
message.SendAndSaveCopy(); 
+0

これは動作していません。私は送信者、sender.nameとsender.Addressを設定しようとしましたが、それらが設定されても、電子メールはあなたのサービス設定で指定されたアカウントから来ています。 – RobDigital

関連する問題