• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

iPhoneってメール送信はmailtoしか用意してないんですね。それ以上のものを作る(長い文字列の送信など)には自分でSMTPクライアント作るしかないみたいです。
とりあえずmailtoを使ったアプリSendingEmailを作ってみました。

作業

  1. プロジェクトの新規作成でView-Based Applicationを選択:SendingEmailとする
  2. SendingEmailViewControllerにsendingEmail関数を追加
  3. SendingEmailViewController.xibファイルをダブルクリックしてInterfaceBuilderを起動
  4. InterfaceBuilderで先ほど追加したsendingEmailとGUIをマッピング
  5. Build&Goして動作を確認します:エミュレータではメール送信画面は表示されませんので、実機でどうぞ

UIViewControllerにsendingEmail関数を追加

SendingEmailViewController.hファイル

   1  @interface SendingEmailViewController : UIViewController {
   2  }
   3  
   4  - (IBAction) sendingEmail: (id) sender;
   5  
   6  @end

SendingEmailViewController.mファイル

   1  #import "SendingEmailViewController.h"
   2  
   3  @implementation SendingEmailViewController
   4  
   5  - (IBAction)sendingEmail:(id)sender {
   6   	NSURL* mailURL = [NSURL URLWithString: @"mailto:satoko@somedomain.com?subject=My%20Subject&body=bodyStuff"];
   7  	NSLog(@"mailURL: %@", mailURL); //Debug		[[UIApplication sharedApplication] openURL: mailURL];
   8  } 

InterfaceBuilderでの作業:SendingEmailViewController.xibを編集

  1. Round Rect Button(UIBUtton)をview上にドロップしてtitleにsend Emailと入力
  2. File's Ownerを右クリックしてダイアログを開き(この黒いダイアログなんて呼ぶのかな...)
  3. File's OwnerのsendingEmail関数を、ボタンの関数Touch Up Insideと結びつける
    1. ダイアログ内のReceived Actions項のsendingEmailの右端の丸をクリック&ドラッグして、
    2. ステップ1.で置いたボタン上までマウスを持って行き
    3. ボタンがハイライトされたらマウスを放す
    4. ダイアログ内のTouch Up Insideを選択

sendingEmail_InterfaceBuilder.png

注意

件名や本文はエンコードしないといけないようです。
http://eggbung.blogspot.com/2008/11/iphone-development-creating-email-with.html
http://www.iphonewebdev.com/examples/mailto.html

posted by Png satoko on Thu 4 Dec 2008 at 16:51

とりあえずサンプルは動いた。でも何がなんだかわからないという人はこれをやってみるといいかもしれません。

developer.apple.comのiPhone101
上記リンクの内容のpdf版

学んだ・作業したこと

  • xibはニブ(nib)ファイルと読む
  • Delegatorとプロトコルがなんとなく
  • (初心者には便利な)Interface Builderを使ってのGUI作成

できたアプリ

UITextFieldに名前を入力して、Helloボタンを押すと、"Hello, satoko!"と表示するアプリ iPhone Simulator.png

posted by Png satoko on Thu 4 Dec 2008 at 15:03

メモメモ。

NSLogクラスとDebugger Console

NSLogというクラスを使ってDebugger Consoleに出力できます。
Debugger Console:Run - Console または Shift+Command+Rで開く

サンプルアプリ SpeakHereより

   1  NSLog (@"updateUserInterfaceOnAudioQueueStateChange just called.");
   2  NSLog (@"Recorded file path: %@", fileURL); 

便利なiPhone デバッグ用のマクロがあった

http://d.hatena.ne.jp/Psychs/20081120/1227203259
by Psychsさん

このマクロを使うと下記の関数が使えるようになります。大変便利です!

   1  LOG(@"initialized %@", obj);
   2  LOG_CURRENT_METHOD;

ちなみに、このマクロはSpeakHere_Prefix.pchなどのプリコンパイル済みヘッダにいれるとよいようです。

posted by Png satoko on Thu 4 Dec 2008 at 14:34
Contents
mailtoを使ったシンプルなメール送信iPhoneアプリ
サンプルを動かせたら作ってみる、Your First iPhone Application: iPhone101
iPhoneでのデバッグ
Comments
KingofSmack: Here also good reads for this mobile applicatio... '14-5
satoko: stackoverflowでも同じエラーを挙げている人がいたので、1.3でアップロードしたよっ... '10-12
ujihisa: :%s/blog/glob/g '10-7
satoko: しゅが〜様 返事が遅くなって申し訳ありません。また、投稿百景ご購入ありがとうございます。 ... '09-10
しゅが~: こんにちは。投稿百景を発売日翌日から利用しています。本当にいいAppを作っていただきました。罫... '09-10
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ