17 Juin 2013 @ 7:07  

Exim4 et Gmail.

1) Créer une redirection email pour votre nom de domaine.

test@hacklab.fr 	vers courrieldestinataire@gmail.com 

2) Installation de exim.

root@ks3666913:~# apt-get install exim4 mutt mailutils

3) Configuration.

root@ks3666913:~# dpkg-reconfigure exim4-config

– Type de configuration : mail sent by smarthost; received via SMTP or fetchmail
– Nom de courrier du système : hacklab.fr
– List d’adresses IP où Exim sera en attente de connexions SMTP entrantes : 127.0.0.1 ; ::1
– Autres destinations dont le courrier doit être acceptée : < rien>
– Machines à relayer : < rien>
– Nom de domain visible pour les utilisateurs locaux : hacklab.fr
– Nom réseau ou adresse IP du système « smarthost » : smtp.gmail.com::587
– Faut-il cacher le nom local de courriel dans les courriels sortants : Non
– Faut-il minimiser les reqêtes DNS (connexions à la demande) ? : Non
– Méthode de distribution du courriel local : mbox
– Faul-il séparer la configuration dans plusieurs fichiers ? : Oui
– Destinataire des courriers de « root » et de « postmasters » : < rien>

4) Fichier de configuration.

– Test :

root@ks3666913:~# host smtp.gmail.com
smtp.gmail.com is an alias for gmail-smtp-msa.l.google.com.
gmail-smtp-msa.l.google.com has address 173.194.67.108
gmail-smtp-msa.l.google.com has address 173.194.67.109
gmail-smtp-msa.l.google.com has IPv6 address 2a00:1450:400c:c05::6d

Ouvrir :

/etc/exim4/passwd.client

Ajouter à la fin :

smtp.gmail.com:utilisateurgmail@gmail.com:motdepassegmail
gmail-smtp-msa.l.google.com:utilisateurgmail@gmail.com:motdepassegmail

5) Configuration des alias.

Ouvrir :

/etc/aliases/

Ajouter à la fin :

root:utilisateurgmail@gmail.com

6) Configuration de l’adresse de l’expéditeur.

Ouvrir :

/etc/email-addresses

Ajouter à la fin :

hacklab:utilisateurgmail@mail.com

7) Configuration.

Ouvrir :

/etc/exim4/exim4.conf.template

Chercher :

.ifdef DCconfig_smarthost DCconfig_satellite

Ajouter après :

send_via_gmail:
       driver = manualroute
       domains = ! +local_domains
       transport = gmail_smtp 
       route_list = * smtp.gmail.com

Chercher et supprimer :

smarthost:
  debug_print = "R: smarthost for $local_part@$domain"
  driver = manualroute
  domains = ! +local_domains
  transport = remote_smtp_smarthost
  route_list = * DCsmarthost byname
  host_find_failed = defer
  same_domain_copy_routing = yes
  no_more

Chercher :

begin authenticators

Ajouter après :

gmail_login:
       driver = plaintext
       public_name = mon_login
       client_send = : mon_adresse@gmail.com : monMotDePasse

Chercher :

### transport/30_exim4-config_remote_smtp_smarthost
#################################

Ajouter après :

gmail_smtp:
       driver = smtp
       port = 587
       hosts_require_auth = $host_address
       hosts_require_tls = $host_address

Chercher et commenter :

login:
  driver = plaintext
  public_name = LOGIN
.ifndef AUTH_CLIENT_ALLOW_NOTLS_PASSWORDS
  # Return empty string if not non-TLS AND looking up $host in passwd-file
  # yields a non-empty string; fail otherwise.
  client_send = "<; ${if and{\
                          {!eq{$tls_cipher}{}}\
                          {!eq{PASSWDLINE}{}}\
                         }\
                      {}fail}\
                 ; ${extract{1}{::}{PASSWDLINE}}\
                 ; ${sg{PASSWDLINE}{\\N([^:]+:)(.*)\\N}{\\$2}}"
.else
  # Return empty string if looking up $host in passwd-file yields a
  # non-empty string; fail otherwise.
  client_send = "<; ${if !eq{PASSWDLINE}{}\
                      {}fail}\
                 ; ${extract{1}{::}{PASSWDLINE}}\
                 ; ${sg{PASSWDLINE}{\\N([^:]+:)(.*)\\N}{\\$2}}"
.endif

8) Vérification :

root@ks3666913:/etc# cat /etc/exim4/update-exim4.conf.conf
dc_eximconfig_configtype='smarthost'
dc_other_hostnames=''
dc_local_interfaces='127.0.0.1 ; ::1'
dc_readhost='hacklab.fr'
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='smtp.gmail.com::587'
CFILEMODE='644'
dc_use_split_config='true'
dc_hide_mailname='false'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'
root@ks3666913:~# exim -bV
Exim version 4.80 #3 built 02-Jan-2013 19:40:22
Copyright (c) University of Cambridge, 1995 - 2012
(c) The Exim Maintainers and contributors in ACKNOWLEDGMENTS file, 2007 - 2012
Berkeley DB: Berkeley DB 5.1.29: (October 25, 2011)
Support for: crypteq iconv() IPv6 GnuTLS move_frozen_messages DKIM
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmjz dbmnz dnsdb dsearch nis nis0 passwd
Authenticators: cram_md5 plaintext
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore autoreply lmtp pipe smtp
Fixed never_users: 0
Size of off_t: 8
Configuration file is /var/lib/exim4/config.autogenerated

9) Recharger la configuration :


root@ks3666913:/etc# update-exim4.conf
root@ks3666913:/etc# /etc/init.d/exim4 restart
[ ok ] Stopping MTA for restart: exim4_listener.
[ ok ] Restarting MTA: exim4.

10) Test :

– Envoyer un message :

root@ks3666913:~# mail courrieldestinataire@gmail.com
Subject: sujet
message
.
EOT

– Vérification :

root@ks3666913:~# tail -f /var/log/exim4/mainlog
...
2013-06-17 18:28:47 1UocIR-0003e6-4c <= root@hacklab.fr U=root P=local S=508
2013-06-17 18:28:49 1UocIR-0003e6-4c => courrieldestinataire@gmail.com R=smarthost T=remote_smtp_smarthost H=gmail-smtp-msa.l.google.com [2a00:1450:400c:c05::6c] X=TLS1.2:RSA_ARCFOUR_SHA1:128 DN="C=US,ST=California,L=Mountain View,O=Google Inc,CN=smtp.gmail.com"
2013-06-17 18:28:49 1UocIR-0003e6-4c Completed

– Erreur :

2013-06-17 18:18:22 1Uoc8M-0003IN-5Z plain authenticator failed H=gmail-smtp-msa.l.google.com [2a00:1450:400c:c05::6c] 535-5.7.8 Username and Password not accepted. Learn more at
535-5.7.8 http://support.google.com/mail/bin/answer.py?answer=14257
535 5.7.8 {BADCREDENTIALS} dz8sm23049397wib.11 - gsmtp

Solution :

– Confirmation du compte gmail : http://www.google.com/accounts/DisplayUnlockCaptcha

11) Liens :

http://blog.pperichon.fr/configuration-exim4-debian-squeeze/
http://dmesg.fr/administration/126-configurer-exim-4-en-smarthost-pour-utiliser-le-serveur-smtp-de-votre-fai
http://www.bravoladmin.fr/configurer-exim4-pour-utiliser-gmail-comme-relais-smtp/

Posted By: Administrateur
Last Edit: 17 Juin 2013 @ 07:10

EmailPermalinkComments (0)
Tags
 16 Mai 2013 @ 9:13  

Synthèse vocal avec Google Translate.

Ouvrir :

parler.sh

Ajouter :

#!/bin/bash
say() {
local IFS=+
/usr/bin/mplayer -ao alsa -really-quiet -noconsolecontrols "http://translate.google.com/translate_tts?tl=fr&q=$*" > /dev/null 2>&1
}
say $* 

Action :

$ chmod 777 ./parler.sh

Utilisation :

$ ./parler.sh Bonjour tout le monde
Posted By: Administrateur
Last Edit: 16 Mai 2013 @ 09:13

EmailPermalinkComments (0)
Tags
Categories: Script
 29 Déc 2012 @ 10:24  

Déployer un site avec git vers un serveur de production.

Requis :

* Serveur distant/de production : http://spaceadventurecobra.com
– Apache avec le module userdir activé

* Serveur local : http://localhost
– Apache avec le module userdir activé

* Utilisateur sur client/serveur local : util01
– Répertoire du site en local : /home/util01/public_html
– Site web : http://localhost/~util01/

* Utilisateur sur serveur distant : util02
– Répertoire du site en local : /home/util02/public_html
– Site web : http://spaceadventurecobra.com/~util02/

* Git doit être fonctionnelle sur le client local et sur le serveur distant

* Créer un dépôt sur GitHub.

I) Sur le client local :

1) Création d’un fichier

Ouvrir :

/home/util01/public_html/index.html

Ajouter :

<html>
<head>
</head>
<body>
Journal de bord
</body>
</html>

2) Ajouter et valider :

– Initialisation :

[~/public_html] ➔ git init .
Initialized empty Git repository in /home/util01/public_html/.git/

– Etat :

[~/public_html (master)⚡] ➔ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   index.html
nothing added to commit but untracked files present (use "git add" to track)

– Ajout :

[~/public_html (master)⚡] ➔ git add .
[~/public_html (master)⚡] ➔ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#   new file:   index.html
#

– Commit :

[~/public_html (master)⚡] ➔ git commit -m "Version : 0.0.1"
[master (root-commit) a946326] Version : 0.0.1
 1 files changed, 7 insertions(+), 0 deletions(-)
 create mode 100644 index.html

– Etat :

[~/public_html (master)] ➔ git status
# On branch master
nothing to commit (working directory clean)
[~/public_html (master)] ➔

3) Initialiser le dépôt github distant :

[~/public_html (master)] ➔ git remote add origin https://github.com/Nekrofage/journal.git

4) Envoyer vers le Github :

[~/public_html (master)] ➔ git push -u origin master
Username:
Password:
Counting objects: 3, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 275 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/Nekrofage/journal.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

5) Vérifier sur Github si le fichier index.html est présent.

II) Sur le serveur distant :

1) Création d’un dépôt nu :

util02@spaceadventurecobra:~$ mkdir Site
util02@spaceadventurecobra:~$ cd Site/
util02@spaceadventurecobra:~/Site$ mkdir journal.git
util02@spaceadventurecobra:~/Site$ cd journal.git/
util02@spaceadventurecobra:~/Site/journal.git$ git init --bare
Initialized empty Git repository in /home/util02/Site/journal.git/

2) Ajout d’un remote = distant :

(Je ne pense pas que cela soit utile de faire cette opération…)

util02@spaceadventurecobra:~/Site/journal.git$ pwd
/home/util02/Site/journal.git
util02@spaceadventurecobra:~/Site/journal.git$ git remote add prod ssh://spaceadventurecobra.com/home/util02/Site/journal.git

3) Création du répertoire du site web en production :

util02@spaceadventurecobra:~$ cd public_html/
util02@spaceadventurecobra:~/public_html$ git clone /home/util02/Site/journal.git
Cloning into journal...
done.
warning: You appear to have cloned an empty repository.

4) Modification de hook = crochet :

util02@spaceadventurecobra:~/Site/journal.git/hooks$ vi post-receive.sample
util02@spaceadventurecobra:~/Site/journal.git/hooks$ cp post-receive.sample post-receive

Ouvrir :

/home/util02/Site/journal.git/hooks/post-receive

Effacer tout.

Ajouter :

#!/bin/sh

export GIT_DIR=/home/util02/public_html/journal/.git/
export GIT_WORK=/home/util02/public_hmtl/journal/

cd /home/util02/public_html/journal

git fetch
git merge origin/master
git submodule update --init --recursive

5) Modification de permission :

util02@spaceadventurecobra:~$ chmod +x Site/journal.git/hooks/post-receive
util02@spaceadventurecobra:~$ ls -l Site/journal.git/hooks/post-receive
-rwxr-xr-x 1 util02 util02 227 29 d�c.  22:21 Site/journal.git/hooks/post-receive

6) Modification de git :

(Voir si c’est utile)
– Serveur distant :

util02@spaceadventurecobra:~$ cd ~/public_html/journal/
util02@spaceadventurecobra:~/public_html/journal$ git config core.shareRepository true

– Client local :

util02@spaceadventurecobra:~$ cd /home/util02/Site/journal.git/
util02@spaceadventurecobra:~/Site/journal.git$ git config core.shareRepository true

III) Test

1) Sur le site en local :

Ouvrir :

/home/util01/public_html/index.html

Supprimer tout.

Ajouter :

<html>
<head>
</head>
<body>
<h1>Journal de bord</h1><br>
<br>
<b>Cobra</b>
</body>
</html>

2) Ajouter et committer.

[~/public_html (master)⚡] ➔ git add .
[~/public_html (master)⚡] ➔ git commit -m "Modification : page principale"
[master 96ab273] Modification : page principale
 1 files changed, 3 insertions(+), 1 deletions(-)

3) Push vers Github :

[~/public_html (master)↑] ➔ git push -u origin master
Username:
Password:
Counting objects: 5, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 338 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/Nekrofage/journal.git
   a946326..96ab273  master -> master
Branch master set up to track remote branch master from origin.

4) Ajout d’un remote distant du serveur distant de production :

[~/public_html (master)] ➔ git remote add prod ssh://util02@spaceadventurecobra.com/home/util02/Site/journal.git

5) Push vers le serveur distant/production :

[~/public_html (master)] ➔ git push prod master
util02@spaceadventurecobra.com's password:
Counting objects: 6, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (6/6), 542 bytes, done.
Total 6 (delta 1), reused 0 (delta 0)
remote: From /home/util02/Site/journal
remote:  * [new branch]      master     -> origin/master
To ssh://util02@spaceadventurecobra.com/home/util02/Site/journal.git
 * [new branch]      master -> master

6) Vérification sur le serveur distant : http://spaceadventurecobra.com/~util02/journal/

util02@spaceadventurecobra:~$ ls -l public_html/journal/
total 4
-rw-r--r-- 1 util02 util02 92 29 d�c.  22:50 index.html

7) Lien :

Article : Déployer un site avec Git / Web Design n°46

Posted By: Administrateur
Last Edit: 29 Déc 2012 @ 10:32

EmailPermalinkComments (0)
Tags
 07 Déc 2012 @ 9:15  

Serveur et Client « Google Cloud Messaging » (GCM)

Mobile : Samsung SG-i5510 sous Froyo 2.2

I) Activation de GCM.

1) Créer un compte Google :

https://accounts.google.com/SignUp?service=mail&continue=https%3A%2F%2Fmail.google.com%2Fmail%2F&ltmpl=default&hl=fr

Ce compte doit être ajouté dans le mobile Android.

2) Créer un projet : https://code.google.com/apis/console/

[API Project]
[Other projects][Create…]

L’adresse de la page change : https://code.google.com/apis/console/#project:546127697609:services

Récupérer la valeur numérique entre « #project: » et « :services » : 546127697609
C’est le numéro du projet et sera utilisé comme « GCM sender ID« .

– « Enter the name for your project: » : GCMessager
[Create project]

3) Activation du service GCM :

[Services]
– Activer [Google Cloud Messaging for Android] à « ON »
– Cocher « I agree to these terms. »
[Accept]

4) Obtenir la clé API :

[API Access]
[Create new Server key…]
– A la fenêtre de dialogue « Configure Server Key for GCMessager » : [Create]
– Dans la section « Key for server apps (with IP locking)« , récupérer la « API key » : AIzaSyBqYPI6UDg6ef8xVJ64wNIjR3Df8fZ67Bw

5) Liens :

http://developer.android.com/google/gcm/demo.html

II) Environnement de développement.

1) Télécharger Eclipse : Eclipse Juno (4.2) SR1

http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/juno/SR1/eclipse-java-juno-SR1-linux-gtk.tar.gz

2) Android SDK : android-sdk_r21-linux.tgz

http://developer.android.com/sdk/index.html

3) Configuration : http://developer.android.com/sdk/installing/installing-adt.html

– « Android SDK Manager » :
Installer :
Android 2.3.3 (API 10)
Extras/Google Cloud Messaging for Android Library

III) Code source du client et du serveur.

Github : https://github.com/Nekrofage/GCMessager

De : http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/
Avec les corrections du source à partir des commentaires de l’article.

1) Client GCM :

Ouvrir :

/GCMessager/src/com/androidhive/pushnotifications/CommonUtilities.java

Chercher :

    // give your server registration url here
    static final String SERVER_URL = "http://xx.xx.xx.xx/gcm_server_php/register.php";

    // Google project id
    static final String SENDER_ID = "";

Remplacer par :

    // give your server registration url here
    static final String SERVER_URL = "http://266.651.674.163/gcmessager/register.php";

    // Google project id
    static final String SENDER_ID = "546127697609";

2) Serveur :

Ouvrir :

/gcmessager/config.php

Chercher :

/**
 * Database config variables
 */
define("DB_HOST", "");
define("DB_USER", "");
define("DB_PASSWORD", "");
define("DB_DATABASE", "gcmessager");

/*
 * Google API Key
 */
define("GOOGLE_API_KEY", ""); // Place your Google API Key

Remplacer par :

/**
 * Database config variables
 */
define("DB_HOST", "localhost");
define("DB_USER", "utilisateur");
define("DB_PASSWORD", "motdepasse");
define("DB_DATABASE", "gcmessager");

/*
 * Google API Key
 */
define("GOOGLE_API_KEY", "AIzaSyBqYPI6UDg6ef8xVJ64wNIjR3Df8fZ67Bw"); // Place your Google API Key

IV) Test.

Après l’envoie du message par l’interface web , attendre 10 min. pour qu’il s’affiche sur le mobile Android en tant que « notification ».

Posted By: Administrateur
Last Edit: 07 Déc 2012 @ 09:33

EmailPermalinkComments (0)
Tags
Categories: Android, Google, Script, Système, Web
 23 Août 2012 @ 7:01  

Ouvrir :

archiverStendhal.sh

Ajouter :

#!/bin/sh

STENDHAL_VERSION="102"

DATE=`date +"%y%m%d"`
sudo tar cvfz STENDHAL_$STENDHAL_VERSION-$DATE.tar.gz STENDHAL$STENDHAL_VERSION
Posted By: Administrateur
Last Edit: 23 Août 2012 @ 07:01

EmailPermalinkComments (0)
Tags
Categories: Script

 50 derniers articles
 Retour
Changer Thème...
  • Users » 1
  • Posts/Pages » 530
  • Comments » 1
Change Theme...
  • VoidVoid « Default
  • LifeLife
  • EarthEarth
  • WindWind
  • WaterWater
  • FireFire
  • LightLight

SteamCyberPunk



    Pas de Pages Enfants.

Discussion



    Pas de Pages Enfants.

Galerie Photos



    Pas de Pages Enfants.

Manifestations et festivals



    Pas de Pages Enfants.

Concerts et festival de musique



    Pas de Pages Enfants.

Articles



    Pas de Pages Enfants.