# [make.conf] error de sintaxis

## Theasker

Tengo en uso la opción del make.conf de

```
PORTAGE_ELOG_MAILURI="theasker@gmail.com theaskergentoo:xxxxx@smtp.gmail.com:100587"
```

Pero realmente quiero recibir los avisos del portage en otro correo, el cual tengo en la password espacios, y no se muy bien como ponerlo, he intentado asignado una variable como en bash:

```
pass"clave con espacios"

PORTAGE_ELOG_MAILURI="theasker@gmail.com theaskergentoo:$pass@smtp.gmail.com:100587"

```

Pero no funciona

Gracias anticipadas

----------

## achaw

Y de esta forma?:

```
pass="clave con espacios" 

PORTAGE_ELOG_MAILURI="theasker@gmail.com theaskergentoo:$pass@smtp.gmail.com:100587"
```

o

```
PORTAGE_ELOG_MAILURI="theasker@gmail.com theaskergentoo:'aca el pass'@smtp.gmail.com:100587"
```

Saludos

----------

## Theasker

ya lo he probado también con comillas simples pero na de na.

gracias de todas formas

----------

## JuanSimpson

y con la diagonal invertida??

PORTAGE_ELOG_MAILURI="theasker@gmail.com theaskergentoo:aca\ el\ pass@smtp.gmail.com:100587"

solo es una idea, nunca lo he probado

----------

## Theasker

Ya lo he probado y na.

----------

## achaw

Ahora...me parece extraño...que error te marca?

Saludos

----------

## Coghan

No lo he probado nunca, pero prueba a sustituir los espacios por la cadena %20

----------

## opotonil

Y con:

```

pass="clave con espacios"

PORTAGE_ELOG_MAILURI="theasker@gmail.com theaskergentoo:${pass}@smtp.gmail.com:100587" 

```

Salu2.

PD: el error quien te lo da ¿? el propio make.conf, portage imagino que fuera en este caso, o el MTA de correo.

----------

## Theasker

Lo del %20 da error de password al intentar mandarlo y lo de ${pass} da error de portage, osea q na de na. 

Al final, voy a tener que cambiar de clave, que no pasa nada, pero quería conseguir hacerlo funcionar, ya era orgullo, no quería que se "quedara conmigo" el simpático del make.conf.

gracias, por la ayuda, y ... seguiré probando.

----------

## i92guboj

 *Theasker wrote:*   

> Lo del %20 da error de password al intentar mandarlo y lo de ${pass} da error de portage, osea q na de na. 
> 
> Al final, voy a tener que cambiar de clave, que no pasa nada, pero quería conseguir hacerlo funcionar, ya era orgullo, no quería que se "quedara conmigo" el simpático del make.conf.
> 
> gracias, por la ayuda, y ... seguiré probando.

 

Si el agente de envío smtp acepta espacios en el password (en caso contrario eso ya quedaría fuera del contexto de bash y del make.conf), puede que funcione cambiando el separador de campo $IFS.

```

IFS_old=$IFS

IFS="/"

PORTAGE_ELOG_MAILURI="theasker@gmail.com/theaskergentoo:pass word@smtp.gmail.com:100587" 

IFS=$IFS_old

```

Nunca lo he probado :p

----------

## esteban_conde

No se si lo habrás probado pero haré una sugerencia más, escapa todos los blancos y la arroba, si la contraseña te admite blancos tiene que haber alguna forma de que se pueda validar.

----------

## i92guboj

 *esteban_conde wrote:*   

> No se si lo habrás probado pero haré una sugerencia más, escapa todos los blancos y la arroba, si la contraseña te admite blancos tiene que haber alguna forma de que se pueda validar.

 

Aún así tiene que haber forma de distinguir unos blancos de otros. 

Hay dos piezas fundamentales: la primera es bash, bash tiene que entender donde empieza un campo y donde termina, si los campos contienen espacios (que es el separador por defecto) entonces cambiar dicho separador (IFS) es una solución. La otra pieza del rompecabezas es el agente smtp, sea el que sea, si bash pasa bien el campo de texto pero el agente smtp no entiende bien dicho campo porque tiene espacios entonces solo hay dos formas de arreglarlo: cambiar el password o cambiar de agente smtp. No se si el agente smtp que use portage por defecto es configurable, supongo que si.

Lo primero hay que arreglarlo, acepte o no espacios el agente smtp, porque si bash no manda bien las cadenas entonces da igual todo lo demás.

----------

## Theasker

Después de modificar la configuración así:

```
IFS_old=$IFS

IFS="/"

PORTAGE_ELOG_MAILURI="theasker@gmail.com theasker:password/ con/ espacios@smtp.gmail.co$

IFS=$IFS_old
```

sigue dando error, al final veo que tendré q cambiar la clave

```
>>> Installing games-misc/cowsay-3.03-r1

Traceback (most recent call last):

  File "/usr/bin/emerge", line 40, in <module>

    retval = _emerge.emerge_main()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 15224, in emerge_main

    myopts, myaction, myfiles, spinner)

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 14305, in action_build

    retval = mergetask.merge()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 10707, in merge

    rval = self._merge()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 11008, in _merge

    self._main_loop()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 11145, in _main_loop

    self._poll_loop()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 9524, in _poll_loop

    handler(f, event)

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 2417, in _output_handler

    self._unregister_if_appropriate(event)

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 1930, in _unregister_if_appropriate

    self.wait()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 1835, in wait

    self._wait_hook()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 1908, in _wait_hook

    self._exit_listener_stack.pop()(self)

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 3220, in _post_phase_exit

    self.wait()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 1835, in wait

    self._wait_hook()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 1908, in _wait_hook

    self._exit_listener_stack.pop()(self)

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 2171, in _task_exit_handler

    self.wait()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 1835, in wait

    self._wait_hook()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 1908, in _wait_hook

    self._exit_listener_stack.pop()(self)

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 2122, in _default_final_exit

    return self.wait()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 1835, in wait

    self._wait_hook()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 1908, in _wait_hook

    self._exit_listener_stack.pop()(self)

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 2818, in _build_exit

    self.wait()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 1835, in wait

    self._wait_hook()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 1908, in _wait_hook

    self._exit_listener_stack.pop()(self)

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 2122, in _default_final_exit

    return self.wait()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 1835, in wait

    self._wait_hook()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 1908, in _wait_hook

    self._exit_listener_stack.pop()(self)

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 10987, in _build_exit

    self._schedule()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 9440, in _schedule

    return self._schedule_tasks()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 11167, in _schedule_tasks

    if q.schedule():

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 9309, in schedule

    task.start()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 1817, in start

    self._start()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 4033, in _start

    self.returncode = self.merge.merge()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 4000, in merge

    retval = self._install_task.install()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 2907, in install

    rval = merge.execute()

  File "//usr/lib/portage/pym/_emerge/__init__.py", line 3279, in execute

    blockers=self.find_blockers)

  File "//usr/lib/portage/pym/portage/__init__.py", line 6596, in merge

    mydbapi=mydbapi, prev_mtimes=prev_mtimes)

  File "//usr/lib/portage/pym/portage/dbapi/vartree.py", line 2844, in merge

    mydbapi=mydbapi, prev_mtimes=prev_mtimes)

  File "//usr/lib/portage/pym/portage/dbapi/vartree.py", line 2855, in _merge

    elog_process(self.mycpv, self.settings, phasefilter=filter_mergephases)

  File "//usr/lib/portage/pym/portage/elog/__init__.py", line 153, in elog_process

    m.process(mysettings, str(key), mod_logentries, mod_fulllog)

  File "//usr/lib/portage/pym/portage/elog/mod_mail.py", line 39, in process

    portage.mail.send_mail(mysettings, mymessage)

  File "//usr/lib/portage/pym/portage/mail.py", line 49, in send_mail

    myrecipient, mymailuri = mysettings["PORTAGE_ELOG_MAILURI"].split()

ValueError: too many values to unpack
```

----------

## i92guboj

 *Theasker wrote:*   

> Después de modificar la configuración así:
> 
> ```
> IFS_old=$IFS
> 
> ...

 

No. Así:

```
IFS_old=$IFS

IFS="/"

PORTAGE_ELOG_MAILURI="theasker@gmail.com/theasker:password con espacios@smtp.gmail.co$

IFS=$IFS_old
```

----------

## Theasker

Vale, esque no entiendo muy bien lo del IFS que es, pero lo he puesto como tu me dices pero na

```

IFS_old=$IFS

IFS="/" 

PORTAGE_ELOG_MAILURI="theasker@gmail.com/theasker:pass with spaces@smtp.gmail.com:100587"

IFS=$IFS_old
```

gracias de todas formas

Mod edit by i92guboj: no se si el password que pusiste era el verdadero pero lo he eliminado por si acaso.

----------

## i92guboj

Bueno, lo hemos intentado jeje

Una pregunta, si usas manualmente exim o el programa que sea desde línea de comandos, ¿puedes enviar bien los mensajes?

Lo digo porque he estado mirando y quizás puedas usar PORTAGE_ELOG_COMMAND para especificar un agente distinto al predeterminado que si funcione bien con los espacios... es una idea.

----------

## Theasker

eso había pensado, pero más sencillo que un mta, había pensado en usar sendEmail que funciona bastante bien, yo lo uso para hacer backup de /etc/ contra una cuenta de gmail diariamente, y además está en el portage.

Gracias por todo, y como bien dices, ... lo hemos intentado

----------

