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

メール通知機能がSPAM扱いをされてしまい、メールが送信が出来なくなるトラブルが解決できたので、 PokéDia-1.1をiTunesストアに申請いたしました。 承認されるまで、今しばらくおまたせいたしますが、 何卒よろしくお願いいたします。

今後とも、ご報告いただいている不具合の修正を進めるとともに、 ご要望いただいている機能の実装などを行っていきます。

それでは、今後ともよろしくお願いいたします。

posted by Png genki on Thu 4 Dec 2008 at 12:06

PokéDiaをお買い上げいただいた皆様。

現在(12/4)のところ、PokéDiaのメール送信機能がSPAM扱いされてしまい、うまく機能してない状態になっております。 そのため、現在メール送信機能を一時停止させて頂いております。 ご不便をおかけいたしまして申し訳ございません。

現在、この問題に対処するための改善を実装中です。 最速でアップデートが受理される事を期して、 まずは本件の修正のみを行ってアップデート申請を行う予定です。

他にもいくつかの不具合のご報告を頂いておりますが、 こちらにつきましても速やかに修正してアップデート申請をいたします。 バグ修正状況につきましては、随時このブログや、 http://pokedia.com/でご報告いたします。

至らない点が多く恐縮ですが、 何卒今後ともよろしくお願いいたします。

posted by Png genki on Thu 4 Dec 2008 at 04:52
Contents
mailtoを使ったシンプルなメール送信iPhoneアプリ
サンプルを動かせたら作ってみる、Your First iPhone Application: iPhone101
iPhoneでのデバッグ
PokéDia-1.1を申請しました
メール送信機能に関する不具合のお詫び
Comments
瀧内元気: MacOS版は以下にあります * [genki/ViMouse](https://githu... '23-1
KingofSmack: Here also good reads for this mobile applicatio... '14-5
Spencer: You don't have to re-compile it, this version w... '14-4
staiano: Any chance we can get a recompile for 10.9? '14-1
dsjf: https://gist.github.com/6bf1bf2c3cbb5eb6e7a7 これ... '13-1
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ