bcz
July 1st, 2010, 03:52 PM
Hi All
Just wondering how best to send an image with inline text as an email, direct from a C program. Tried sending HTML as text and that is what arrived at the other end.. not surprising really. Cant find a GTK API to do this. Any ideas. Sample code follows:
//xf1
#include <stdio.h>
#include <gtk/gtk.h>
GtkWidget *screen,*bttn;
static void WandE(GtkWidget *w,GtkWidget *window ){
printf("WE\n");
gtk_widget_destroy(w);
return;}
static void PandE(GtkWidget *widget,GtkWidget *window ){
printf("PE\n");
gtk_exit(0);}
extern char openInp(char *); // open html file
extern char *readInpLn(); // read a line
static void Email(GtkWidget *w, gpointer data){
char *inp; int i;
FILE *email=popen("esmtp -f senderEmail -- destEmail","w");
if(email){
fprintf(email,"From: senderEmail\r\n");
fprintf(email,"To: destEmail\r\n");
fprintf(email,"Subject: URGENT\r\n");
fprintf(email,"\r\n");
//fprintf(email,"Ring office urgently\r\n");
i=1; while(i){
inp=readInpLn();
i=strcmp(inp,"?*?*?*?*");
if(i){fprintf(email,"%s",inp); fprintf(email,"\r\n");}
}
pclose(email);
}else printf("popen failure");
}
int main(int argc, char *argv[]){
gtk_init(&argc,&argv);
openInp("x.html");
screen=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_signal_connect(GTK_OBJECT(screen),"destroy",GTK_SIGNAL_FUNC(PandE),NULL);
gtk_window_set_title(GTK_WINDOW(screen),"Screen");
gtk_window_set_title(GTK_WINDOW(screen),"Screen");
bttn=gtk_button_new_with_label("Email");
gtk_signal_connect(GTK_OBJECT(bttn),"clicked",GTK_SIGNAL_FUNC(Email),NULL);
gtk_container_add(GTK_CONTAINER(screen),bttn);
gtk_widget_show_all(screen);
gtk_main();
return 0;
}
Just wondering how best to send an image with inline text as an email, direct from a C program. Tried sending HTML as text and that is what arrived at the other end.. not surprising really. Cant find a GTK API to do this. Any ideas. Sample code follows:
//xf1
#include <stdio.h>
#include <gtk/gtk.h>
GtkWidget *screen,*bttn;
static void WandE(GtkWidget *w,GtkWidget *window ){
printf("WE\n");
gtk_widget_destroy(w);
return;}
static void PandE(GtkWidget *widget,GtkWidget *window ){
printf("PE\n");
gtk_exit(0);}
extern char openInp(char *); // open html file
extern char *readInpLn(); // read a line
static void Email(GtkWidget *w, gpointer data){
char *inp; int i;
FILE *email=popen("esmtp -f senderEmail -- destEmail","w");
if(email){
fprintf(email,"From: senderEmail\r\n");
fprintf(email,"To: destEmail\r\n");
fprintf(email,"Subject: URGENT\r\n");
fprintf(email,"\r\n");
//fprintf(email,"Ring office urgently\r\n");
i=1; while(i){
inp=readInpLn();
i=strcmp(inp,"?*?*?*?*");
if(i){fprintf(email,"%s",inp); fprintf(email,"\r\n");}
}
pclose(email);
}else printf("popen failure");
}
int main(int argc, char *argv[]){
gtk_init(&argc,&argv);
openInp("x.html");
screen=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_signal_connect(GTK_OBJECT(screen),"destroy",GTK_SIGNAL_FUNC(PandE),NULL);
gtk_window_set_title(GTK_WINDOW(screen),"Screen");
gtk_window_set_title(GTK_WINDOW(screen),"Screen");
bttn=gtk_button_new_with_label("Email");
gtk_signal_connect(GTK_OBJECT(bttn),"clicked",GTK_SIGNAL_FUNC(Email),NULL);
gtk_container_add(GTK_CONTAINER(screen),bttn);
gtk_widget_show_all(screen);
gtk_main();
return 0;
}