none
Azureからメールを送る際の注意 RRS feed

  • 質問

  • こんにちは。

    自分が質問を受けたのですが、環境がないこともありうまく答えられなかったのでどなかた代わりにお願いできないでしょうか?

    【質問内容】

    25番以外(587とか)のSMTPサーバへAzureから送信出来ない制限は解除されたかご存じないですか?(^_^;) 25番OKなのはHotMailしか知らないんです

    http://twitter.com/buchi_org/status/22952756752

     

    すいません。よろしくお願いします。

    ※ちなみにご本人はうまく書き込めないということで代理で投稿しました。

    ※ちなみに25番OKなところの紹介でも解決しそうですが・・・自分も気になりますし

    2010年9月11日 1:42

回答

  • 冨田でございます。

    WorkerRoleで試してみたら送ることができました。
    SMTPS経由でGMailのサーバから送るサンプルを乗せておきます。実際にはQueue経由のメッセージを送っているので余計な部分が多いんですが、取り急ぎこのようなやり方でメール送信が可能です。

        public void ReadQueue()
        {
          CloudQueueMessage msg = this.queue.GetMessage();
          if (msg != null)
          {
            try
            {
              //GMailのSMTPからメール送信
                SmtpClient smtp = new SmtpClient();
              smtp.Host = "smtp.gmail.com";
              smtp.Credentials = new NetworkCredential(”アカウント”, ”パスワード”);
              smtp.Port = 587;
              smtp.EnableSsl = true;
              smtp.Timeout = 60 * 1000;
    
              string mailFrom = "送り元@gmail.com";
              string mailTo = "送り先アドレス";
              using (MailMessage mail = new MailMessage(mailFrom, mailTo, "Azureからきました", msg.AsString))
              {
                smtp.Send(mail);
              }
            }
            catch (Exception e)
            {
              Debug.WriteLine(e.Message);
            }
            finally
            {
              this.queue.DeleteMessage(msg);
            }
          }
    
        }
    
    • 回答としてマーク bird982000 2010年9月13日 0:26
    2010年9月11日 8:45
    モデレータ

すべての返信

  • 冨田でございます。

    WorkerRoleで試してみたら送ることができました。
    SMTPS経由でGMailのサーバから送るサンプルを乗せておきます。実際にはQueue経由のメッセージを送っているので余計な部分が多いんですが、取り急ぎこのようなやり方でメール送信が可能です。

        public void ReadQueue()
        {
          CloudQueueMessage msg = this.queue.GetMessage();
          if (msg != null)
          {
            try
            {
              //GMailのSMTPからメール送信
                SmtpClient smtp = new SmtpClient();
              smtp.Host = "smtp.gmail.com";
              smtp.Credentials = new NetworkCredential(”アカウント”, ”パスワード”);
              smtp.Port = 587;
              smtp.EnableSsl = true;
              smtp.Timeout = 60 * 1000;
    
              string mailFrom = "送り元@gmail.com";
              string mailTo = "送り先アドレス";
              using (MailMessage mail = new MailMessage(mailFrom, mailTo, "Azureからきました", msg.AsString))
              {
                smtp.Send(mail);
              }
            }
            catch (Exception e)
            {
              Debug.WriteLine(e.Message);
            }
            finally
            {
              this.queue.DeleteMessage(msg);
            }
          }
    
        }
    
    • 回答としてマーク bird982000 2010年9月13日 0:26
    2010年9月11日 8:45
    モデレータ
  • ありがとうございました。

    本人に伝えます♪

    2010年9月13日 0:26
  • 回答ありがとうございます。

    最新のAzureSDK1.2 環境作って確認してみたいと思います。

    2010年9月15日 1:10
  • 下記の環境で送信確認できました。

    (開発環境)

      OS Windows 7

      開発環境 VisualStudio 2010 Premium

      Windows Azure SDK 1.2

    (クラウド上)

      Windows Azure OS 1.6 (Automatic)

      <メール設定>

       SmtpPort 587番

       SSL なし

       SmtpServer mail.*****.*** (実際のホスト名は*で伏せてます ホスティングサービス:ActiveWeb)

       Smtp認証 ユーザ名 + パスワード

     

    2010年9月25日 0:07