Google Apps

오픈소스 비즈니스 컨설팅
이동: 둘러보기, 검색

도메인만 있으면 자신만의 메일 주소를 가질 수 있는 Google Apps을 정리 한다.

  • 라이선스 : 무료(기본형) 또는 유료(고급형, user당 $50)

서비스 신청

Google Apps 주요 기능

GoogleLicense.png

  • Google이 SKT와 협력하여 국내에 들어온지 얼마되지 않았는데, 벌써 최대 50명까지 무료로 사용할 수 있었던 무료 라이선스가 10명으로 줄었습니다.
기능 표준형
(Google Apps)
고급형
(Google Apps for Business)
개요
  • 가격 : 무료 (최대 10 사용자)
  • 가격 : 사용자당 $50/월
Gmail, Postini
  • 사용자당 7 GB
  • Postini는 지원 않음
  • 사용자당 25 GB
  • Postin : 이메일 감시/보안과 아카이빙 백업 서비스
Google Calendar
  • 리소스 일정 조정 가능 (회의실/프로젝터 등)
Google Docs, Google Cloud Connect
  • 1 GB
  • 사용자당 1 GB for file storage
Google Sites
  • 10 GB
  • 10 GB + 사용자당 500 MB for shared storage
Google Talk
Google Groups
  • 지원 않음
  • Google Groups for Business
Google Video
  • 지원 않음
  • Google Video for Business
  • 한국은 지원 않음
Google Mobile
Google Apps Script
  • Google Apps for Business
  • 파트너 정책

Gmail

  • 참고 문헌

Google Calendar

Google Docs

  • 참고 문헌

Google Sites

Google Apps Script

Google Gadget

Gmail SMTP로 메일 발송

Gmail SMTP 서버 정보

  • TLS 사용: smtp.gmail.com:587
  • SSL 사용: smtp.gmail.com:465

Gmail for Ubuntu Server

  • sendmail 등을 설치 한다.
#--- 환경 폴더: /etc/mail
#--- 설치 폴더: /usr/share/sendmail
apt-get install sendmail
apt-get install sasl2-bin
apt-get install sendmail-cf
  • OpenSSL을 사용하여 sendmail에서 사용할 개인키와 공개키를 생성를 생성 한다.
  • sendmail 인증 정보를 생성 한다.
cd /etc/mail
mkdir auth
cd auth
vi /etc/mail/auth/authinfo
    AuthInfo:smtp.gmail.com "U:root" "I:[Gmail아이디]@gmail.com" "P:[Gmail비밀번호]"

#---인증 파일의 hashdb(authinfo.db)를 생성 한다.
makemap hash authinfo < authinfo

#--- 인증파일경로의 퍼미션을 설정 한다.
chmod 700 /etc/mail/auth
chmod 600 /etc/mail/auth/*
  • vi /etc/mail/sendmail.mc
include('/etc/mail/sasl/sasl.m4')dnl            #--- Ubuntu Server에서만 추가
FEATURE(authinfo,hash /etc/mail/auth/authinfo)dnl
define('SMART_HOST','smtp.gmail.com')dnl
define('RELAY_MAILER_ARGS', 'TCP $h 587')dnl
define('ESMTP_MAILER_ARGS', 'TCP $h 587')dnl
define('confCACERT_PATH', '/etc/mail/certs')dnl
define('confCACERT', '/etc/mail/certs/CAcert.pem')dnl
define('confSERVER_CERT', '/etc/mail/certs/mycert.pem')dnl
define('confSERVER_KEY', '/etc/mail/certs/mykey.pem')dnl
define('confCLIENT_CERT', '/etc/mail/certs/mycert.pem')dnl
define('confCLIENT_KEY', '/etc/mail/certs/mykey.pem')dnl
define('confAUTH_MECHANISMS', 'EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
TRUST_AUTH_MECH('EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')
define('confAUTH_OPTIONS', 'A')dnl
#--- 아래 라인 위에 추가 한다.
MAILER(smtp)dnl
  • sendmail.cf 생성
  • CentOS
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
service sendmail restart
  • Ubuntu Server
cd /etc/mail
make

#--- 필요한 경우 sendmail의 설정을 재 생성 한다. 
sendmailconfig

/etc/init.d/sendmail start
  • php.ini 설정
sendmail_path = /usr/sbin/sendmail -t

Gmail for CentOS

CentOS 5.5 버전에서 sendmail을 사용하여 Gmail을 연동하여 보자.

  • sendmail 설치
yum install openssl sendmail sendmail-cf
yum install cyrus-sasl cyrus-sasl-plain
  • sendmail이 TLS 또는 SSL을 지원하는지 확인 한다.
#--- STARTTLS와 SASLv2가 있는지 확인
sendmail -d0.1 -bv root
  • SASL 2.1.21 이상을 지원하는지 확인 한다.
yum list | grep sasl
  • OpenSSL을 사용하여 sendmail에서 사용할 개인키와 공개키를 생성를 생성 한다.
  • sendmail 인증 정보를 생성 한다.
cd /etc/mail
mkdir auth
cd auth
vi /etc/mail/auth/authinfo
    AuthInfo:smtp.gmail.com "U:root" "I:[Gmail아이디]@gmail.com" "P:[Gmail비밀번호]"
    ### AuthInfo:smtp.gmail.com "U:root" "I:[Gmail아이디]@gmail.com" "P:[Gmail비밀번호]" "M:PLAIN"
    ### AuthInfo:smtp.gmail.com:587 "U:root" "I:[Gmail아이디]@gmail.com" "P:[Gmail비밀번호]" "M:PLAIN"

#---인증 파일의 hashdb(authinfo.db)를 생성 한다.
makemap hash authinfo < authinfo

#--- 인증파일경로의 퍼미션을 설정 한다.
chmod 700 /etc/mail/auth
chmod 600 /etc/mail/auth/*
  • vi /etc/mail/sendmail.mc
include('/etc/mail/sasl/sasl.m4')dnl            #--- Ubuntu Server에서만 추가
FEATURE(authinfo,hash /etc/mail/auth/authinfo)dnl
define('SMART_HOST','smtp.gmail.com')dnl
define('RELAY_MAILER_ARGS', 'TCP $h 587')dnl
define('ESMTP_MAILER_ARGS', 'TCP $h 587')dnl
define('confCACERT_PATH', '/etc/mail/certs')dnl
define('confCACERT', '/etc/mail/certs/CAcert.pem')dnl
define('confSERVER_CERT', '/etc/mail/certs/mycert.pem')dnl
define('confSERVER_KEY', '/etc/mail/certs/mykey.pem')dnl
define('confCLIENT_CERT', '/etc/mail/certs/mycert.pem')dnl
define('confCLIENT_KEY', '/etc/mail/certs/mykey.pem')dnl
define('confAUTH_MECHANISMS', 'EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
TRUST_AUTH_MECH('EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')
define('confAUTH_OPTIONS', 'A')dnl
#--- 아래 라인 위에 추가 한다.
MAILER(smtp)dnl
  • sendmail.cf 생성
  • CentOS
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
service sendmail restart
  • Ubuntu Server
cd /etc/mail
make

#--- 필요한 경우 sendmail의 설정을 재 생성 한다. 
sendmailconfig

/etc/init.d/sendmail start
  • 최종 확인
echo '/map authinfo AuthInfo:smtp.gmail.com' | /usr/sbin/sendmail -bt
echo "this is a test" | sendmail -s aaa@test.co.kr
#--- aaa@test.co.kr 메일함에서 메일을 확인 한다.
  • 방화벽에서 587, 465 port를 개방 한다.
system-config-securitylevel
  • 기타 sendmail 설정
  • Access 설정
makemap hash /etc/mail/access.db < /etc/mail/access
  • Mail host 설정
vi /etc/mail/local-host-names
  • showinfo_sendmail.bash
#!/bin/bash
echo 'sendmail 버전  : sendmail 8.13.8'
echo '환경 파일      : vi /etc/mail/sendmail.mc'
echo '기동 종료      : service sendmail restart'
echo '서비스 확인    : ps -ef | grep sendmail | grep -v grep'
  • php.ini 설정
sendmail_path = /usr/sbin/sendmail -t

서비스 업체별 POP3, SMTP 주소

  • Defaut port
  • smtp : 25 / tcp, POP3 : 110 / tcp, IMAP : 143 / tcp
  • 보안 smtp : 587 / tcp, 보안 POP3 : 995 / tcp, 보안 IMAP :
  • gmail.com (환경설정 - 전달 및 POP/IMAP - POP 다운로드 항목에서 사용설정을 해야 이용 가능)
  • IMAP: imap.gmail.com (SSL 사용, 포트: 993)
  • POP3: pop.gmail.com (SSL 사용, 포트: 995)
  • SMTP: smtp.gmail.com (SSL 사용, 포트: 465)
  • hanmail.net
  • POP3: pop.hanmail.net (SSL 사용, 포트: 995)
  • SMTP: smtp.hanmail.net (SSL 사용, 포트: 465)
  • nate.com
  • POP3: nate.com (포트: 110)
  • SMTP: 지원 안함 (다른 업체의 SMTP를 이용하는 수 밖에 없음)
  • naver.com (으뜸사용자만 이용 가능)
  • POP3: pop.naver.com (포트: 110)
  • SMTP: smtp.naver.com (포트: 25)
  • yahoo.co.kr
  • POP3: pop.mail.yahoo.co.kr (SSL 사용, 포트: 995)
  • SMTP: smtp.mail.yahoo.co.kr (SSL 사용, 포트: 465, 인증 사용)
  • yahoo.com
  • POP3: pop.mail.yahoo.com (SSL 사용, 포트: 995)
  • SMTP: smtp.mail.yahoo.com (SSL 사용, 포트: 465, 인증 사용)

참고 문헌

  • Ubuntu Server
  • CentOS

Outlook 설정

  • Microsoft Outlook를 실행하여 "도구 -> 계정 설정 -> 새로 만들기" 메뉴를 선택 합니다.
  • "Microsoft Exchange, POP3, IMAP 또는 HTTP"을 선택 합니다.

GoogleOutlook001.png

  • "수동으로 서버 설정 또는 추가 서버 유형 구성"을 선택 합니다.

GoogleOutlook002.png

  • "인터넷 전자 메일"을 선택 합니다.

GoogleOutlook003.png

  • 필요한 정보를 입력하고 "기타 설정" 버튼을 선택 합니다.
  • 사용자 이름 : 사용자 이름
  • 전자 메일 주소 : 이메일 주소
  • 계정 유형 : IMAP
  • 받는 메일 서버 : imap.gmail.com
  • 보내는 메일 서버 : smtp.gmail.com
  • 사용자 이름 : 이메일 주소
  • 암호 : 비밀번호
  • 암호 저장 체크

GoogleOutlook004.png

  • "고급" 탭을 선택하여 아래와 같이 설정 합니다.
  • 받는 메일 서버 : 993
  • 암호화된 다음 연결 방식 사용 : SSL
  • 보내는 메일 서버 : 25
  • 암호화된 다음 연결 방식 사용 : TLS

GoogleOutlook005.png

  • "보내는 메일 서버" 탭을 선택하여 아래와 같이 설정 합니다.
  • "보내는 메일 서버 인증 필요" 체크
  • "받는 메일 서버와 동일한 설정 사용" 선택

GoogleOutlook006.png

개발자 가이드

GData Eclipse 개발 환경 설정

Eclipse에서 Google Data(GData) APIs Client Library를 사용할 수 있는 개발 환경을 구성 한다.

  • d:/libGdata/ 폴더에 압축을 푼다.
  • Eclipse에서 Google Data Project를 생성 한다.
  • "Package Explorer"에서 오른쪽 마우스를 누른다.
  • "new -> Others -> Google Data -> Google Data Project" 메뉴를 선택 한다.
  • "Project name"을 입력하고 사용할 프로젝트 템플릿을 선택 한다.
  • "Location"에서 "d:/libGdata/java/lib/" 폴더를 선택하고 "Finish" 버튼을 눌러 프로젝트를 생성 한다.
  • Class not found 오류가 발생할 경우에는

Google Apps API

Google Apps

architecture.png

Google Data Protocol
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
Google Apps Script
  • Google Docs의 Spreadsheet와 Google Sites 에서 사용할 수 있는 Script API
Google Secure Data Connector
  • 기업내의 데이터를 보안된 방법으로 Google Apps에서 접속할 수 있도록 한다.

OpenID Single Sign-On

  • OpenID 2.0 Standard
  • 참고 문헌

SAML Single Sign-On

  • SAML (Security Assertion Markup Language)
  • SAML v2.0 Standard XML-based framework
  • 사용자 인증(authentication)과 권한(authorization) 정보를 교환하도록 허용
  • SAML을 구현한 Java 기반의 오픈소스
  • Google Apps 관리자 설정 메뉴
  • "Advanced tools -> Set up sign-on (SSO)" : SSO 정보과 인증서 정보(public key) 설정
  • "Advanced tools -> Two-step verification" : 새로운 장비에서 로그인시 핸드폰으로 인증 코드 발송
  • 참고 문헌

Google Apps with two-legged OAuth

  • Two-legged OAuth를 사용하여 Google Calendar에 접속하는 사례
  • Google Apps 관리자 화면에서 "Advanced tools" 메뉴를 선택 한다.
  • "Manage OAuth domain key" 링크를 선택 한다.
  • OAuth consumer key : 프로그램에서 CONSUMER_KEY로 사용, consumer key를 사용 가능하도록 체크 한다.
  • OAuth consumer secret : 프로그램에서 CONSUMER_SECRET로 사용
  • Two-legged OAuth access control : 모든 API를 사용할 수 있도록 선택 한다.
  • "Manage third party OAuth Client access" 링크를 선택하여 접근 권한을 설정 한다.
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;

import com.google.gdata.client.authn.oauth.GoogleOAuthParameters;
import com.google.gdata.client.authn.oauth.OAuthException;
import com.google.gdata.client.authn.oauth.OAuthHmacSha1Signer;
import com.google.gdata.client.authn.oauth.OAuthParameters.OAuthType;
import com.google.gdata.client.calendar.CalendarService;
import com.google.gdata.data.calendar.CalendarEntry;
import com.google.gdata.data.calendar.CalendarFeed;
import com.google.gdata.util.ServiceException; 

//--- http://code.google.com/intl/ko-KR/apis/gdata/docs/auth/oauth.html
public class Calendar {
	private static String CONSUMER_KEY = "xxxx";
	private static String CONSUMER_SECRET = "xxxx";
	private static String userID = "xxxx";  //--- Google Apps 사용자의 로그인 아이디 (@앞의 것)
	
 	public static void main(String[] args) {
		GoogleOAuthParameters oauthParams = null;
               CalendarService calendar = null;
               URL metafeedUrl = null;
               CalendarFeed resultFeed = null;
		
               oauthParams = new GoogleOAuthParameters();
		oauthParams.setOAuthConsumerKey(CONSUMER_KEY);
		oauthParams.setOAuthConsumerSecret(CONSUMER_SECRET);
		oauthParams.setOAuthType(OAuthType.TWO_LEGGED_OAUTH);
		
		calendar = new CalendarService("My Application");
               try {
			calendar.setOAuthCredentials(oauthParams, new OAuthHmacSha1Signer());
			metafeedUrl = new URL("http://www.google.com/calendar/feeds/default/allcalendars/full?xoauth_requestor_id=" + userID + "@" + CONSUMER_KEY); 
			resultFeed = calendar.getFeed(metafeedUrl, CalendarFeed.class);
		} catch (OAuthException e1) {
			e1.printStackTrace();
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ServiceException e) {
			e.printStackTrace();
		}
		
        List<CalendarEntry> entries = resultFeed.getEntries();
        for (int i = 0;i < entries.size();i++) {
        	CalendarEntry entry = entries.get(i);
        	System.out.println("\t" + entry.getTitle().getPlainText());
        }
        System.out.println("\nTotal Entries: "+entries.size());
	}
}
  • 참고 문헌

관리자 가이드

무료 DNS 업체

Google Apps 서비스 (Premier Edition)

  • Google Apps (Premier Edition) 관리자 콘솔의 메뉴/기능
Dashboard
  • 서비스 사이트와 설정 화면으로의 링크 제공
  • Email, Calendar, Docs, Sites, Groups
  • Chat, Mobile, Start Page
  • Google Wave, Contacts, Moderator, Short Links, Aviary Design Tools, Insightly, Manymoon, OffiSync
  • "Add more services" 링크 클릭시
  • "Postini Services" 추가 가능
  • Google Apps Marketplace에서 서비스 추가 가능
  • Google App Engine에서 서비스 추가 가능
Organization & users
  • 계층화된 형태로 조직을 생성하고 조직별로 서비스 사용 권한을 설정 한다.
  • 상위 조직에 부여된 권한을 하위 조직에서 상속 가능
  • 각 조직별로 사용자를 할당 한다. 단, 한명의 사용자는 하나의 조직에만 할당이 된다.
  • Contacts, Gmail, Google Calendar, Google Docs, Google Groups, Google Sites, Google Talk, Google Wave
Groups
  • Group을 만들어 Group email을 할당 한다.
  • Google Groups 서비스를 통해 각종 정보를 그룹 구성원간에 공유할 수 있다.
  • 문서, 사이트, 동영상 및 캘린더에 대한 액세스 관리
Domain settings
  • General 메뉴
  • 서비스 및 관리자 설정
  • 사용 언어, 시간대 설정
  • SSL 사용 여부 등 설정
  • Account information 메뉴
  • Google Apps 계정 정보, 라이선스 정보를 표시 한다.
  • Domain names 메뉴
  • 도메인 이름을 설정 한다.
  • User settings 메뉴
  • Contact Sharing 여부
  • Enable provisioning API 여부
  • Sign-in page : SAML 기반의 SSO 서비스를 설정 한다.
  • Advanced Password Setting : 암호 정책을 설정 한다.
  • Apperance 메뉴
  • 상단 기업 로고와 화면 색상을 설정 한다.
Advanced tools
  • Create multiple users
  • Bulk upload : CSV 파일 사용
  • Download Directory Sync
  • Authentication
  • Set up single sign-on (SSO)
  • Advanced Password Settings
  • Manage OAuth domain key : OAuth 사용 설정
  • Federated Login using OpenID
  • Manage third party OAuth Client access : API 사용 권한 설정
  • Reporting
  • View Usage and Reports
  • Set Up Google Analytics
  • Free/busy service
  • MS Exchange와 calendar 정보를 연동할 때 사용
  • Secure Data Connector
  • 기업의 레가시 시스템에 있는 데이터를 안전한 방법으로 Google Apps에서 사용할 수 있도록 한다.
  • Email migration
  • API references
  • Google Apps desktop features
  • User email uploads
Support
  • Resources for administrators
  • Resources for end users
  • Customer support form Sofficepack.co.kr
Service Settings
  • 각 종 서비스의 설정 페이지
  • Start Page
  • Email, Chat, Calendar, Docs, Groups, Google Wave, Sites, Contacts, Mobile, Moderator, Short Links
  • Mail, Calendar, Talk, Doc List, Documents, Spreadsheets, Presentations, Drawings, Sites
  • Video for business, Groups, Admin control panel / API, Postini Services

참고 사이트

Deployment

  • Deployment Tools or Help

Development

  • API and Library

Reseller

참고 문헌

  • Google Apps 판매 업체