Foxtrack

福岡の家具屋でITエンジニアやってます。

pod setupしたら「Setting up CocoaPods master repo」から進まない問題

pod setup

したあと、

Setting up CocoaPods master repo

から進まなくなった問題・・・

キャッシュを消したりいろいろやってみたけど上手くいかず。

どうやらCocoaPodsのリポジトリが落ちてこないため進まない模様。

cd ~/.cocoapods/repos
git clone https://github.com/CocoaPods/Specs.git master

終わったら

pod setup --verbose

Setting up CocoaPods master repo
  $ /usr/bin/git remote set-url origin https://github.com/CocoaPods/Specs.git
  $ /usr/bin/git checkout master
  Already on 'master'
  Your branch is up-to-date with 'origin/master'.

Updating spec repo `master`
  $ /usr/bin/git pull --ff-only
  From https://github.com/CocoaPods/Specs
     5a5453d..a1ce965  master     -> origin/master
  Updating 5a5453d..a1ce965
Setup completed

通った!!!

[!] Unable to add a source with url `https://github.com/CocoaPods/Specs.git` named `master`. · Issue #4293 · CocoaPods/CocoaPods · GitHub

メールは受け取れたけど文字化けで読めないよ問題

AWS LambdaのNodeJSでAWS SESで受信したメールの文字化けをどうにかする。

先日、AWS SESでどうにかメールを受信できるようになったものの、メールが文字化けする問題が起こっていました。

f:id:foxtrack:20160617001401p:plain

これは読めない・・・

iconvというモジュールを使えばいけそうだが、Lambdaという環境でやるには非常に面倒くさそうである。(できない事はないらしい) qiita.com

なんて思ってたところこんなすごい処理があったので参考にさせていただく。

www.bokukoko.info

今回は特定のメール(iso-2022-jpで送られてくる)しかこない想定なので、とりあえずiso-2022-jp => UTF-8に変換させてみる。

f:id:foxtrack:20160617001839p:plain

いけた!!!

ちなみにLambdaのコードはこんな感じ

'use strict';
console.log('Loading function');
var aws = require('aws-sdk');
var s3 = new aws.S3();
var fs = require('fs');
var filepath = "/tmp/filepath";

exports.handler = (event, context, callback) => {
  var bucket = event.Records[0].s3.bucket.name;
  var key = event.Records[0].s3.object.key;
  s3.getObject({
    Bucket:bucket,
    Key:key
  },function(err,data) {
    if (err) {
      console.log(err);
    } else {
      fs.writeFileSync(filepath, String(data.Body));
      var exec = require('child_process').exec;
      var cmd = "iconv -f iso-2022-jp -t utf-8 " + filepath;
      var child = exec(cmd, function(err, stdout, stderr) {
        if (err) callback(err);
        console.log(stdout);
        callback(null, stdout);
      });
    }
  });

  callback(null, 'SES OK!!!!');
};

SES使ってみた

メール受信したらどうのこうのの処理をやってみたかったので今日はSES使ってみる。

 

f:id:foxtrack:20160613200840p:plain

ちなみに残念ながら東京リージョンはまだダメらしい。(対応されるのだろうか)

 

先にRoute53を設定しておきましょう。

f:id:foxtrack:20160613205533p:plain

 hoge.comみたいな感じにRoute53登録していたので、

fuga.hoge.comみたいな感じでMXレコードを追加。オレゴンで作ったのでus-west-2を指定します。

 

f:id:foxtrack:20160617012758p:plain

ドメインはRoute 53を使うので[Use Route 53]を押下。

f:id:foxtrack:20160613203445p:plain

Lambdaが一つもない!!と思ったがここはオレゴンだった。

 

f:id:foxtrack:20160613203717p:plain

 

仕方ないのでオレゴンにLambdaを一つ追加(SESの東京リージョンまだですかね)

 

f:id:foxtrack:20160613204344p:plain

あとは確認して・・・

 

f:id:foxtrack:20160613204359p:plain

権限ないから追加するか聞かれたので追加。

 

f:id:foxtrack:20160613204501p:plain

いけた気がする!!!

f:id:foxtrack:20160613204716p:plain

テストのためLambdaの内容をちょっと変えて。。

 

指定したドメインにメールを送ると・・・(SS省略)

f:id:foxtrack:20160613205134p:plain

ちゃんとLambdaが動いてログに出てる!!!

 

ひとまずメール受信したらLambdaが動くところまで確認できました。

メールの内容読み取りは次回!!!

Blog引越し!

勢いではてブロに引越してきました。

技術的なことを(飽きるまでは)書いていこうかと思います。