You're right, I get a different set of errors -- the same ones you report -- 
with the 32-bit build:

libtool: file: OCCVertex.o has no symbols
libtool: file: OCCEdge.o has no symbols
libtool: file: OCCFace.o has no symbols
libtool: file: OCCRegion.o has no symbols
libtool: file: fourierEdge.o has no symbols
libtool: file: fourierFace.o has no symbols
libtool: file: fourierProjectionFace.o has no symbols
libtool: file: MZone.o has no symbols
libtool: file: MZoneBoundary.o has no symbols


<snip>

g++ -Os -o bin/gmsh -Llib -lGmshFltk -lGmshCommon -lGmshGeo -lGmshMesh 
-lGmshPost -lGmshPlugin -lGmshCommon -lGmshGraphics -lGmshParser -lGmshNumeric 
-lGmshNativeFileChooser -L/sw32/lib -framework OpenGL -dylib_file 
/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
 -L/sw32/lib/fontconfig2/lib -L/sw32/lib/xft2/lib -L/usr/X11R6/lib 
-lfltk_images -lpng -lz -ljpeg -lfltk_gl -lGLU -lGL -lfltk -lXft -lpthread 
-lXext -lX11 -ljpeg -lpng -lGmshANN -lGmshChaco -lGmshMetis -lGmshNetgen 
-lGmshMathEval -lgsl -lgslcblas -lz -lm
Undefined symbols:
  "_FSGetCatalogInfo", referenced from:
      Fl_Native_File_Chooser::event_handler(long, NavCBRec*, void*)in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
  "_NavDialogGetReply", referenced from:
      Fl_Native_File_Chooser::NavReply::get_reply(__NavDialog*&)      in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
  "fl_open_callback(void (*)(char const*))", referenced from:
      GUI::GUI(int, char**)in libGmshFltk.a(GUI.o)
  "_AECountItems", referenced from:
      Fl_Native_File_Chooser::NavReply::get_pathnames(char**&, int&)in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
      Fl_Native_File_Chooser::event_handler(long, NavCBRec*, void*)in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
  "_AECoerceDesc", referenced from:
      AEDescToFSSpec(AEDesc const*, FSSpec*)in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
  "_AECreateDesc", referenced from:
      Fl_Native_File_Chooser::event_handler(long, NavCBRec*, void*)in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
  "___CFConstantStringClassReference", referenced from:
      cfstring=  in libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
  "_NavCreateGetFileDialog", referenced from:
      Fl_Native_File_Chooser::post()      in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
  "_NavDialogRun", referenced from:
      Fl_Native_File_Chooser::post()      in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
  "Fl::x()", referenced from:
      GUI::create_about_window()      in libGmshFltk.a(GUI.o)
      window_cb(Fl_Widget*, void*)in libGmshFltk.a(Callbacks.o)
  "Fl::y()", referenced from:
      GUI::create_about_window()      in libGmshFltk.a(GUI.o)
      window_cb(Fl_Widget*, void*)in libGmshFltk.a(Callbacks.o)
  "_AEDisposeDesc", referenced from:
      AEDescToFSSpec(AEDesc const*, FSSpec*)in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
      Fl_Native_File_Chooser::NavReply::get_pathnames(char**&, int&)in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
      Fl_Native_File_Chooser::event_handler(long, NavCBRec*, void*)in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
  "Fl_Sys_Menu_Bar::menu(Fl_Menu_Item const*)", referenced from:
      GUI::create_menu_window()      in libGmshFltk.a(GUI.o)
  "_NavDialogSetSaveFileName", referenced from:
      Fl_Native_File_Chooser::event_handler(long, NavCBRec*, void*)in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
  "_FSPathMakeRef", referenced from:
      Fl_Native_File_Chooser::event_handler(long, NavCBRec*, void*)in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
  "vtable for Fl_Sys_Menu_Bar", referenced from:
      __ZTV15Fl_Sys_Menu_Bar$non_lazy_ptr in libGmshFltk.a(GUI.o)
     (maybe you meant: __ZTV15Fl_Sys_Menu_Bar$non_lazy_ptr)
  "_NavCreateChooseFolderDialog", referenced from:
      Fl_Native_File_Chooser::post()      in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
  "_NavCreatePutFileDialog", referenced from:
      Fl_Native_File_Chooser::post()      in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
  "_CFStringGetCString", referenced from:
      Fl_Native_File_Chooser::NavReply::get_saveas_basename(char*, int)in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
      Fl_Native_File_Chooser::get_saveas_basename(__NavDialog*&)        in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
  "_CFStringCreateArrayBySeparatingStrings", referenced from:
      Fl_Native_File_Chooser::show()      in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
  "_NavDialogDispose", referenced from:
      Fl_Native_File_Chooser::~Fl_Native_File_Chooser()in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
  "_CFRelease", referenced from:
      Fl_Native_File_Chooser::event_handler(long, NavCBRec*, void*)in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
      Fl_Native_File_Chooser::show()      in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
      Fl_Native_File_Chooser::show()      in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
      Fl_Native_File_Chooser::show()      in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
      Fl_Native_File_Chooser::show()      in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
  "_AEGetDescData", referenced from:
      AEDescToFSSpec(AEDesc const*, FSSpec*)in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
      AEDescToFSSpec(AEDesc const*, FSSpec*)in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
      Fl_Native_File_Chooser::NavReply::get_pathnames(char**&, int&)in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
  "_CFStringCreateWithCString", referenced from:
      Fl_Native_File_Chooser::event_handler(long, NavCBRec*, void*)in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
      Fl_Native_File_Chooser::show()      in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
      Fl_Native_File_Chooser::show()      in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
  "_NavCustomControl", referenced from:
      Fl_Native_File_Chooser::event_handler(long, NavCBRec*, void*)in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
      Fl_Native_File_Chooser::event_handler(long, NavCBRec*, void*)in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
      Fl_Native_File_Chooser::event_handler(long, NavCBRec*, void*)in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
      Fl_Native_File_Chooser::event_handler(long, NavCBRec*, void*)in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
  "_NavDisposeReply", referenced from:
      Fl_Native_File_Chooser::NavReply::~NavReply()in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
      Fl_Native_File_Chooser::NavReply::~NavReply()in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
      Fl_Native_File_Chooser::NavReply::get_reply(__NavDialog*&)      in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
      Fl_Native_File_Chooser::get_pathnames(__NavDialog*&)        in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
      Fl_Native_File_Chooser::get_pathnames(__NavDialog*&)        in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
      Fl_Native_File_Chooser::get_saveas_basename(__NavDialog*&)        in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
      Fl_Native_File_Chooser::get_saveas_basename(__NavDialog*&)        in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
  "_NavDialogGetUserAction", referenced from:
      Fl_Native_File_Chooser::post()      in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
  "_FSpMakeFSRef", referenced from:
      FSSpecToPath(FSSpec const&, char*, int)in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
  "_NavGetDefaultDialogCreationOptions", referenced from:
      Fl_Native_File_Chooser::Fl_Native_File_Chooser(int)in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
  "_FSRefMakePath", referenced from:
      FSSpecToPath(FSSpec const&, char*, int)in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
  "_AEGetNthDesc", referenced from:
      Fl_Native_File_Chooser::NavReply::get_pathnames(char**&, int&)in 
libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [link] Error 1
### execution of make failed, exit code 2

On Jan 12, 2011, at 9:51 AM, Alexander Hansen wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> On 1/12/11 12:28 AM, Erik Sherwood wrote:
>> I'm trying to install gmsh 2.2.5-1002 and get the errors listed below. It 
>> appears several files don't compile properly. I'm running a completely clean 
>> install of fink 
>> 
>> fink --version
>> Package manager version: 0.29.17
>> Distribution version: selfupdate-rsync Tue Jan 11 23:49:11 2011, 10.6, x86_64
>> 
>> on a new iMac. 
>> 
>> gcc --version
>> i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664)
>> 
>> Although I'm reporting the error for 64 bit, it appears to happen in 32-bit 
>> as well. With this fink install gmsh was the first package I tried 
>> installing.
>> 
>> ********************************************************************
>> Gmsh is configured for
>>  - OS           : Darwin on movado.bu.edu
>>  - C compiler   : gcc
>>  - C++ compiler : g++
>>  - Linker       : g++
>>  - Optimization : -Os
>>  - Options      : -DHAVE_NO_DLL -DHAVE_LIBZ -DHAVE_GSL -DHAVE_MATH_EVAL 
>> -DHAVE_NETGEN -DHAVE_ANN -DHAVE_LIBPNG -DHAVE_LIBJPEG 
>> -DHAVE_NATIVE_FILE_CHOOSER -DHAVE_FLTK  -I/sw/include 
>> -I/sw/include/freetype2 -I/sw/include -I/usr/X11R6/include -DHAVE_CHACO 
>> -DHAVE_METIS -DHAVE_64BIT_SIZE_T
>> ********************************************************************
>> 
>> 
>> <snip>
>> 
>> g++ -Os -DHAVE_NO_DLL -DHAVE_LIBZ -DHAVE_GSL -DHAVE_MATH_EVAL -DHAVE_NETGEN 
>> -DHAVE_ANN -DHAVE_LIBPNG -DHAVE_LIBJPEG -DHAVE_NATIVE_FILE_CHOOSER 
>> -DHAVE_FLTK  -I/sw/include -I/sw/include/freetype2 -I/sw/include 
>> -I/usr/X11R6/include -DHAVE_CHACO -DHAVE_METIS -DHAVE_64BIT_SIZE_T 
>> -I../Common -I../Geo -I../Mesh -I../Post -I../Graphics -I../Numeric 
>> -I../Parser -I../Plugin -I../Fltk -I../contrib/MathEval 
>> -I../contrib/ANN/include  -c Options.cpp
>> In file included from /sw/include/FL/x.H:41,
>>                 from ../Fltk/GUI.h:32,
>>                 from Options.cpp:31:
>> /sw/include/FL/mac.H: In function 'OpaqueRgnHandle* XRectangleRegion(int, 
>> int, int, int)':
>> /sw/include/FL/mac.H:49: error: 'NewRgn' was not declared in this scope
>> /sw/include/FL/mac.H:50: error: 'SetRectRgn' was not declared in this scope
>> /sw/include/FL/mac.H: In function 'void XDestroyRegion(OpaqueRgnHandle*)':
>> /sw/include/FL/mac.H:54: error: 'DisposeRgn' was not declared in this scope
>> make[1]: *** [Options.o] Error 1
>> 
>> 
>> libtool: file: OCCVertex.o has no symbols
>> libtool: file: OCCEdge.o has no symbols
>> libtool: file: OCCFace.o has no symbols
>> libtool: file: OCCRegion.o has no symbols
>> libtool: file: fourierEdge.o has no symbols
>> libtool: file: fourierFace.o has no symbols
>> libtool: file: fourierProjectionFace.o has no symbols
>> libtool: file: MZone.o has no symbols
>> libtool: file: MZoneBoundary.o has no symbols
>> 
>> 
>> <snip>
>> 
>> g++ -Os -DHAVE_NO_DLL -DHAVE_LIBZ -DHAVE_GSL -DHAVE_MATH_EVAL -DHAVE_NETGEN 
>> -DHAVE_ANN -DHAVE_LIBPNG -DHAVE_LIBJPEG -DHAVE_NATIVE_FILE_CHOOSER 
>> -DHAVE_FLTK  -I/sw/include -I/sw/include/freetype2 -I/sw/include 
>> -I/usr/X11R6/include -DHAVE_CHACO -DHAVE_METIS -DHAVE_64BIT_SIZE_T 
>> -I../Common -I../Graphics -I../Geo -I../Mesh -I../Post -I../Fltk 
>> -I../Numeric -I../contrib/ANN/include -I../contrib/Triangle 
>> -I../contrib/MathEval  -c Annotate.cpp
>> In file included from /sw/include/FL/x.H:41,
>>                 from ../Fltk/GUI.h:32,
>>                 from Annotate.cpp:12:
>> /sw/include/FL/mac.H: In function 'OpaqueRgnHandle* XRectangleRegion(int, 
>> int, int, int)':
>> /sw/include/FL/mac.H:49: error: 'NewRgn' was not declared in this scope
>> /sw/include/FL/mac.H:50: error: 'SetRectRgn' was not declared in this scope
>> /sw/include/FL/mac.H: In function 'void XDestroyRegion(OpaqueRgnHandle*)':
>> /sw/include/FL/mac.H:54: error: 'DisposeRgn' was not declared in this scope
>> make[1]: *** [Annotate.o] Error 1
>> 
>> <snip>
>> 
>> g++ -Os -DHAVE_NO_DLL -DHAVE_LIBZ -DHAVE_GSL -DHAVE_MATH_EVAL -DHAVE_NETGEN 
>> -DHAVE_ANN -DHAVE_LIBPNG -DHAVE_LIBJPEG -DHAVE_NATIVE_FILE_CHOOSER 
>> -DHAVE_FLTK  -I/sw/include -I/sw/include/freetype2 -I/sw/include 
>> -I/usr/X11R6/include -DHAVE_CHACO -DHAVE_METIS -DHAVE_64BIT_SIZE_T 
>> -I../Common -I../Graphics -I../Geo -I../Mesh -I../Post -I../Numeric 
>> -I../Parser -I../Fltk -I../Plugin -I../utils/solvers 
>> -I../contrib/ANN/include -I../contrib/NativeFileChooser  -c Main.cpp
>> In file included from /sw/include/FL/x.H:41,
>>                 from GUI.h:32,
>>                 from Main.cpp:8:
>> /sw/include/FL/mac.H: In function 'OpaqueRgnHandle* XRectangleRegion(int, 
>> int, int, int)':
>> /sw/include/FL/mac.H:49: error: 'NewRgn' was not declared in this scope
>> /sw/include/FL/mac.H:50: error: 'SetRectRgn' was not declared in this scope
>> /sw/include/FL/mac.H: In function 'void XDestroyRegion(OpaqueRgnHandle*)':
>> /sw/include/FL/mac.H:54: error: 'DisposeRgn' was not declared in this scope
>> make[1]: *** [Main.o] Error 1
>> g++ -Os -DHAVE_NO_DLL -DHAVE_LIBZ -DHAVE_GSL -DHAVE_MATH_EVAL -DHAVE_NETGEN 
>> -DHAVE_ANN -DHAVE_LIBPNG -DHAVE_LIBJPEG -DHAVE_NATIVE_FILE_CHOOSER 
>> -DHAVE_FLTK  -I/sw/include -I/sw/include/freetype2 -I/sw/include 
>> -I/usr/X11R6/include -DHAVE_CHACO -DHAVE_METIS -DHAVE_64BIT_SIZE_T -I.  
>> -DFLTK1 -c Fl_Native_File_Chooser.cxx
>> In file included from ./FL/Fl_Native_File_Chooser.H:32,
>>                 from Fl_Native_File_Chooser_MAC.cxx:39,
>>                 from Fl_Native_File_Chooser.cxx:29:
>> ./FL/Fl_Native_File_Chooser_MAC.H:54: error: 'NavDialogCreationOptions' does 
>> not name a type
>> ./FL/Fl_Native_File_Chooser_MAC.H:58: error: 'NavDialogRef' does not name a 
>> type
>> ./FL/Fl_Native_File_Chooser_MAC.H:59: error: 'NavActionState' does not name 
>> a type
>> ./FL/Fl_Native_File_Chooser_MAC.H:60: error: 'NavMenuItemSpec' does not name 
>> a type
>> ./FL/Fl_Native_File_Chooser_MAC.H:87: error: 'NavReplyRecord' does not name 
>> a type
>> ./FL/Fl_Native_File_Chooser_MAC.H:91: error: 'NavDialogRef' has not been 
>> declared
>> ./FL/Fl_Native_File_Chooser_MAC.H:101: error: 'NavDialogRef' has not been 
>> declared
>> ./FL/Fl_Native_File_Chooser_MAC.H:102: error: 'NavDialogRef' has not been 
>> declared
>> ./FL/Fl_Native_File_Chooser_MAC.H:103: error: 'NavEventCallbackMessage' has 
>> not been declared
>> ./FL/Fl_Native_File_Chooser_MAC.H:104: error: 'NavCBRecPtr' has not been 
>> declared
>> ./FL/Fl_Native_File_Chooser_MAC.H:109: error: 'NavFilterModes' has not been 
>> declared
>> ./FL/Fl_Native_File_Chooser_MAC.H:110: error: 'NavFilterModes' has not been 
>> declared
>> In file included from Fl_Native_File_Chooser.cxx:29:
>> Fl_Native_File_Chooser_MAC.cxx: In function 'int AEDescToFSSpec(const 
>> AEDesc*, FSSpec*)':
>> Fl_Native_File_Chooser_MAC.cxx:66: error: 'typeFSS' was not declared in this 
>> scope
>> Fl_Native_File_Chooser_MAC.cxx: In function 'void FSSpecToPath(const 
>> FSSpec&, char*, int)':
>> Fl_Native_File_Chooser_MAC.cxx:81: error: 'FSpMakeFSRef' was not declared in 
>> this scope
>> Fl_Native_File_Chooser_MAC.cxx: In destructor 
>> 'Fl_Native_File_Chooser::NavReply::~NavReply()':
>> Fl_Native_File_Chooser_MAC.cxx:112: error: '_reply' was not declared in this 
>> scope
>> Fl_Native_File_Chooser_MAC.cxx:112: error: 'NavDisposeReply' was not 
>> declared in this scope
>> Fl_Native_File_Chooser_MAC.cxx: At global scope:
>> Fl_Native_File_Chooser_MAC.cxx:117: error: 'int 
>> Fl_Native_File_Chooser::NavReply::get_reply' is not a static member of 
>> 'class Fl_Native_File_Chooser::NavReply'
>> Fl_Native_File_Chooser_MAC.cxx:117: error: 'NavDialogRef' was not declared 
>> in this scope
>> Fl_Native_File_Chooser_MAC.cxx:117: error: 'ref' was not declared in this 
>> scope
>> Fl_Native_File_Chooser_MAC.cxx:117: error: expected ',' or ';' before '{' 
>> token
>> make[1]: *** [Fl_Native_File_Chooser.o] Error 1
>> 
>> 
>> <snip>
>> 
>> ld: library not found for -lGmshFltk
>> collect2: ld returned 1 exit status
>> make: *** [link] Error 1
>> ### execution of make failed, exit code 2
>> 
>> 
>> 
> 
> You're sure the error is _identical_ on 32-bit?  I see a different error
> on 10.6/32-bit than on 10.6/64-bit.  There are no intermediate error
> messages, and the final failure is:
> 
> ...
> g++ -Os -o bin/gmsh -Llib -lGmshFltk -lGmshCommon -lGmshGeo -lGmshMesh
> - -lGmshPost -lGmshPlugin -lGmshCommon -lGmshGraphics -lGmshParser
> - -lGmshNumeric -lGmshNativeFileChooser -L/sw32/lib -framework OpenGL
> - -dylib_file
> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
> - -L/sw32/lib/fontconfig2/lib -L/sw32/lib/xft2/lib -L/usr/X11R6/lib
> - -lfltk_images -lpng -lz -ljpeg -lfltk_gl -lGLU -lGL -lfltk -lXft
> - -lpthread -lXext -lX11 -ljpeg -lpng -lGmshANN -lGmshChaco -lGmshMetis
> - -lGmshNetgen -lGmshMathEval -lgsl -lgslcblas -lhdf5 -lz -lm
> Undefined symbols:
>  "_FSGetCatalogInfo", referenced from:
>      Fl_Native_File_Chooser::event_handler(long, NavCBRec*, void*)in
> libGmshNativeFileChooser.a(Fl_Native_File_Chooser.o)
> ...plus more undefined symbols.
> - -- 
> Alexander Hansen, Ph.D.
> Fink User Liaison
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.11 (Darwin)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
> 
> iEYEARECAAYFAk0twA0ACgkQB8UpO3rKjQ/MeQCeKhvtaaWrRs7Jp1gmkNz+mQ4X
> MsIAnj8W1OjV8af8FhaEiftAjzoLPtAv
> =X5vf
> -----END PGP SIGNATURE-----
> 


------------------------------------------------------------------------------
Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand 
malware threats, the impact they can have on your business, and how you 
can protect your company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
Fink-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fink-users

Reply via email to