Versenden von E-Mails in einer App

Code wäare echt nützlich

Gesendet von meinem GT-S5660 mit der Android-Hilfe.de App
 
Hier der Code für die Activity die bei Klick auf den Button "send" eine Mail verschicken sollte. Original-Mailadresse habich natürlich weggenommen^^.

Der GMailSender ist genauso eingrichtet wie im Link oben.
Internet Permission habich auch eingerichtet genauso wie die Ref Libaries ( activation.jar,additional.jar, mail.jar) und den JSSEProvider.


Code:
package com.example.checkout;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;


public class Mail extends Activity implements OnClickListener {

	private Button send;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_mail);
		
		Button send = (Button) findViewById(R.id.button1);
		send.setOnClickListener(this);
		
	}

	@Override
	public void onClick(View arg0) {
		
		if( arg0 == send){
			try {   
                GMailSender sender = new GMailSender("zeiterfassung2013@gmail.com", "password");
                sender.sendMail("This is Subject",   
                        "This is Body",   
                        "zeiterfassung2013@gmail.com",   
                        "zeiterfassung2013@gmail.com");   
            } catch (Exception e) {   
                Log.e("SendMail", e.getMessage(), e);   
            }  
		
		}
		
	}
}
 
Zuletzt bearbeitet:
Wieder mal ein Catch them all ^^
Code:
} catch (Exception e) {   
                Log.e("SendMail", e.getMessage(), e);   
            }
schon mal ins logcat geschaut?
 
Was sagt denn das Logfile auf dem Server?
 
Hier der inhalt der Log.txt ( Ausschnitt beim betätigen des Button send )

Code:
04-02 06:24:18.111: D/ExchangeService(654): Received deviceId from Email app: null
04-02 06:24:18.111: D/ExchangeService(654): !!! deviceId unknown; stopping self and retrying
04-02 06:24:23.133: D/ExchangeService(654): !!! EAS ExchangeService, onCreate
04-02 06:24:23.133: D/ExchangeService(654): !!! EAS ExchangeService, onStartCommand, startingUp = false, running = false
04-02 06:24:23.143: W/ActivityManager(277): Unable to start service Intent { act=com.android.email.ACCOUNT_INTENT } U=0: not found
04-02 06:24:23.143: D/ExchangeService(654): !!! Email application not found; stopping self
04-02 06:24:23.143: W/ActivityManager(277): Unable to start service Intent { act=com.android.email.ACCOUNT_INTENT } U=0: not found
04-02 06:24:23.153: D/ExchangeService(654): !!! EAS ExchangeService, onStartCommand, startingUp = true, running = false
04-02 06:24:23.163: E/ActivityThread(654): Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40cd28f8 that was originally bound here
04-02 06:24:23.163: E/ActivityThread(654): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40cd28f8 that was originally bound here
04-02 06:24:23.163: E/ActivityThread(654): 	at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
04-02 06:24:23.163: E/ActivityThread(654): 	at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
04-02 06:24:23.163: E/ActivityThread(654): 	at android.app.ContextImpl.bindService(ContextImpl.java:1418)
04-02 06:24:23.163: E/ActivityThread(654): 	at android.app.ContextImpl.bindService(ContextImpl.java:1407)
04-02 06:24:23.163: E/ActivityThread(654): 	at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
04-02 06:24:23.163: E/ActivityThread(654): 	at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
04-02 06:24:23.163: E/ActivityThread(654): 	at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
04-02 06:24:23.163: E/ActivityThread(654): 	at com.android.emailcommon.service.AccountServiceProxy.getDeviceId(AccountServiceProxy.java:116)
04-02 06:24:23.163: E/ActivityThread(654): 	at com.android.exchange.ExchangeService.getDeviceId(ExchangeService.java:1249)
04-02 06:24:23.163: E/ActivityThread(654): 	at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1856)
04-02 06:24:23.163: E/ActivityThread(654): 	at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
04-02 06:24:23.163: E/ActivityThread(654): 	at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
04-02 06:24:23.163: E/ActivityThread(654): 	at android.os.AsyncTask$2.call(AsyncTask.java:287)
04-02 06:24:23.163: E/ActivityThread(654): 	at java.util.concurrent.FutureTask.run(FutureTask.java:234)
04-02 06:24:23.163: E/ActivityThread(654): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
04-02 06:24:23.163: E/ActivityThread(654): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
04-02 06:24:23.163: E/ActivityThread(654): 	at java.lang.Thread.run(Thread.java:856)
04-02 06:24:23.193: E/StrictMode(654): null
04-02 06:24:23.193: E/StrictMode(654): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40cd28f8 that was originally bound here
04-02 06:24:23.193: E/StrictMode(654): 	at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
04-02 06:24:23.193: E/StrictMode(654): 	at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
04-02 06:24:23.193: E/StrictMode(654): 	at android.app.ContextImpl.bindService(ContextImpl.java:1418)
04-02 06:24:23.193: E/StrictMode(654): 	at android.app.ContextImpl.bindService(ContextImpl.java:1407)
04-02 06:24:23.193: E/StrictMode(654): 	at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
04-02 06:24:23.193: E/StrictMode(654): 	at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
04-02 06:24:23.193: E/StrictMode(654): 	at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
04-02 06:24:23.193: E/StrictMode(654): 	at com.android.emailcommon.service.AccountServiceProxy.getDeviceId(AccountServiceProxy.java:116)
04-02 06:24:23.193: E/StrictMode(654): 	at com.android.exchange.ExchangeService.getDeviceId(ExchangeService.java:1249)
04-02 06:24:23.193: E/StrictMode(654): 	at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1856)
04-02 06:24:23.193: E/StrictMode(654): 	at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
04-02 06:24:23.193: E/StrictMode(654): 	at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
04-02 06:24:23.193: E/StrictMode(654): 	at android.os.AsyncTask$2.call(AsyncTask.java:287)
04-02 06:24:23.193: E/StrictMode(654): 	at java.util.concurrent.FutureTask.run(FutureTask.java:234)
04-02 06:24:23.193: E/StrictMode(654): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
04-02 06:24:23.193: E/StrictMode(654): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
04-02 06:24:23.193: E/StrictMode(654): 	at java.lang.Thread.run(Thread.java:856)
04-02 06:24:23.193: W/ActivityManager(277): Unbind failed: could not find connection for android.os.BinderProxy@40f71cf0
04-02 06:24:23.203: E/ActivityThread(654): Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d05060 that was originally bound here
04-02 06:24:23.203: E/ActivityThread(654): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d05060 that was originally bound here
04-02 06:24:23.203: E/ActivityThread(654): 	at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
04-02 06:24:23.203: E/ActivityThread(654): 	at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
04-02 06:24:23.203: E/ActivityThread(654): 	at android.app.ContextImpl.bindService(ContextImpl.java:1418)
04-02 06:24:23.203: E/ActivityThread(654): 	at android.app.ContextImpl.bindService(ContextImpl.java:1407)
04-02 06:24:23.203: E/ActivityThread(654): 	at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
04-02 06:24:23.203: E/ActivityThread(654): 	at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
04-02 06:24:23.203: E/ActivityThread(654): 	at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
04-02 06:24:23.203: E/ActivityThread(654): 	at com.android.emailcommon.service.ServiceProxy.test(ServiceProxy.java:191)
04-02 06:24:23.203: E/ActivityThread(654): 	at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1850)
04-02 06:24:23.203: E/ActivityThread(654): 	at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
04-02 06:24:23.203: E/ActivityThread(654): 	at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
04-02 06:24:23.203: E/ActivityThread(654): 	at android.os.AsyncTask$2.call(AsyncTask.java:287)
04-02 06:24:23.203: E/ActivityThread(654): 	at java.util.concurrent.FutureTask.run(FutureTask.java:234)
04-02 06:24:23.203: E/ActivityThread(654): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
04-02 06:24:23.203: E/ActivityThread(654): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
04-02 06:24:23.203: E/ActivityThread(654): 	at java.lang.Thread.run(Thread.java:856)
04-02 06:24:23.213: E/StrictMode(654): null
04-02 06:24:23.213: E/StrictMode(654): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d05060 that was originally bound here
04-02 06:24:23.213: E/StrictMode(654): 	at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
04-02 06:24:23.213: E/StrictMode(654): 	at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
04-02 06:24:23.213: E/StrictMode(654): 	at android.app.ContextImpl.bindService(ContextImpl.java:1418)
04-02 06:24:23.213: E/StrictMode(654): 	at android.app.ContextImpl.bindService(ContextImpl.java:1407)
04-02 06:24:23.213: E/StrictMode(654): 	at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
04-02 06:24:23.213: E/StrictMode(654): 	at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
04-02 06:24:23.213: E/StrictMode(654): 	at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
04-02 06:24:23.213: E/StrictMode(654): 	at com.android.emailcommon.service.ServiceProxy.test(ServiceProxy.java:191)
04-02 06:24:23.213: E/StrictMode(654): 	at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1850)
04-02 06:24:23.213: E/StrictMode(654): 	at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
04-02 06:24:23.213: E/StrictMode(654): 	at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
04-02 06:24:23.213: E/StrictMode(654): 	at android.os.AsyncTask$2.call(AsyncTask.java:287)
04-02 06:24:23.213: E/StrictMode(654): 	at java.util.concurrent.FutureTask.run(FutureTask.java:234)
04-02 06:24:23.213: E/StrictMode(654): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
04-02 06:24:23.213: E/StrictMode(654): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
04-02 06:24:23.213: E/StrictMode(654): 	at java.lang.Thread.run(Thread.java:856)
04-02 06:24:23.213: W/ActivityManager(277): Unbind failed: could not find connection for android.os.BinderProxy@41015fd8
 
kann ich jetzt noch auf hilfe hoffen:D?
 
hey,

leider hilft mir das nicht so weiter ;-/
davon bin ich wenn du oben gelesen hast ausgegangen^^
 
Hallo,

ich habe mal eine Beispiel-App erstellt. Bei mir funktioniert diese. Du musst natürlich folgendes ändern.

Code:
RM_Mail.java

public RM_Mail() {
        
        // Hier den Host angeben
        _host = "smtp.gmail.com"; // default smtp server
        _port = "465"; // default smtp port
        _sport = "465"; // default socketfactory port
und in MailTest.java wie folgt eine eMail senden.

Code:
private void sendMessage() {
        
        RM_Mail m;

        try {
            
            // Hier Benutzername und Kennwort des eMailkontos
            m = new RM_Mail("Benutzername", "Kennwort");

            // Hier den Empfänger angeben
            String[] toArr = { "empfaenger@gmail.com" };

            m.setTo(toArr);
            
            // Der Absender
            m.setFrom("absender@gmail.com");
            
            m.setSubject("Betreff");

            m.setBody("Zeile 1\n"+
                      "Zeile 2\n"+
                      "Zeile 3");

            try {
                // m.addAttachment("/sdcard/bild.jpg");
                if (m.send()) {
                    mMessage = "Senden erfoglreich";
                } else {
                    mMessage = "eMail nicht gesendet";
                }
            } catch (Exception e) {
                mMessage = "Fehler!!!";
                Log.d("MyApp", "Could not send email", e);
            }
        
        } catch (Exception e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

        Toast.makeText(getApplicationContext(), mMessage, Toast.LENGTH_LONG).show();        
        
    }

Ich hoffe ich konnte helfen...
 

Anhänge

  • rm_mailtest.zip
    2 MB · Aufrufe: 148
mhm danke für die hilfe aber es tut sich immer noch nichts:/ keine fehler meldung nichts:( er sendet einfach keine mail...
 
Welchen Host verwendest du? Ich habe ein eigene Domain und darüber eine eigne eMail-Adresse. Damit geht es. Möglicherweise musst du einen anderen Port angeben. Mit einer gmail-Adresse ging es damals bei mir auch. weis nur nicht ob ich am Port was geändert habe. Solltest du eine GMX-Adresse verwenden kann ich das bei mir auch noch prüfen.
 
benutze eine Gmail-Adresse, smtp und port stimmen mit den von gmail überein.
 
Ich habe es nun bei mir mit Gmail getestet und folgendes angepasst. Der Rest blieb unverändert. Als Bestätigung sollte ein Toast kommen. "Senden erfolgreich". Bis die Mail allerdings ankommt, kann es bei Gmail etwas dauern. Hat bei mir gute 2 Minuten gedauert.

// Hier Benutzername und Kennwort des eMailkontos
m = new RM_Mail("gmail.adresse@gmail.com", "Kennwort123");

// Nur einen Empfänger.
String[] toArr = { "anmich@gmx.de" };

Ich muss etwas genauer nachfragen um helfen zu können, auch wenn es für dich überflüssig anhört. Es entspricht meinen Tests. Hast du folgende Schritte gemacht.

1. Hast du die zip importiert oder den Code zufuss eingestellt. (Import/General/Existing Projects into Workspace). Gehe davon aus du benutzt Eclipse.
2. Hast du dein Handy mittels USB-Kabel am PC verbunden
3. Hast du den Account POP3- und SMTP-Zugriff aktiviert. Quelle Liste mit POP3- und SMTP-Servern http://www.patshaping.de/hilfen_ta/pop3_smtp.htm

Beim letzten wusste ich gar nicht das man es expliziet aktivieren muss. Das wäre ggf. noch ein Ansatzt für dich.
 
Zuletzt bearbeitet:
Zu 1.
Habe den Code zufuss eingefügt. Jap benutze Eclipse.

zu 2.
Nein, eigentlich nicht, ich benutze eigentlich den avd simulator, aber auch teilweise mein eigenes Smartphone aber ohne usb ( .apk aufs handy gezogen und dann manuell installiert^^)

zu 3.
Jap ist alles eingestellt.
 
Um dein Problem zu lösen empfehle ich ähnliche Voraussetzungen zu schaffen wie bei mir.

Ich verwende schon lange nicht mehr den Emulator, denn die Programme auf einem Handy zu testen geht meiner Meinung nach schneller. Vorallem wenn du Sensoren abfragen möchtest ist es unumgänglich.

Als erstes empfehle ich dein Note (ich habe das Note N7000) mit einem USB-Stecker am PC zu verbinden.

Wenn du dir Kies auf den PC installierst, werden alle notwendigen Treiber installiert. Du musst nicht Kies verwenden es geht lediglich um den USB-Treiber.

Stelle an deinem Smartphone unter Einstellungen Entwickler-Optionen USB-Debugging an.

Starte Eclipse und stecke dein Smartphone an das USB-Kabel. Du solltest schon in LogCat jedemenge Informationen sehen.

Beim Ausführen deiner App in Eclipse wirst du gefragt ob du nun dein Smartphone verwenden möchtest oder eines deiner Emulatoren.

Die APK-Datei wird autom. übertragen und gestartet. Geht automatisch. Nun kannst du auch deine Debuginformationen die du im Code ausgibst in LogCat sehen.

Wenn das alles funktioniert, empfehle ich unbedingt den Code zu importieren. Zufuss solltest du das machen erst, wenn eine Version läuft. Im Programm können Einstellungen sein, an denen wir nicht gedacht haben. Beispielsweise die Permissions.

Importiere folgendermaßen.

File, Import..., General, Existing Projects into Workspace
Wähle unter "select archive file" die von mir erzeugte zip.

Hier ist ein Video wie man importiert.

Schnipsel:RM MainExtra

Sollte nach dem Import noch ein Fehler angezeigt werden, klicke mit der rechten Maustaste auf das Projekt. Im Kontextmenü wähle Properties und anschließend unter Java Compiler einen anderen Level.

Wenn der Import erfolgreich war können wir weiter versuchen den Fehler einzugrenzen.

Wenn du Probleme mit den oben beschriebenen Dingen hast, melde dich einfach...
 
mit exakt deinem code funktionierts... :D
aber wenn ich meinen anpasse gehts nicht...
 
Super dann ist ja nun Handarbeit angesagt. Vergleichen und suchen...

Bin neugierig. Geht das auch im Emulator?
 
so hab nochma deinen

public void onClick(View view) {

switch(view.getId()) {

case R.id.button1:
sendMessage();
break;
}


}

eingefügt, was vorher nicht war^^
jetzt klappts auch bnei mir^^
 
Ja die Methode sendMessage() muss man schon aufrufen :blink: Solche blöden Fehler passieren mir auch manchmal. Schön das es jetzt läuft :thumbsup:
 
  • Danke
Reaktionen: adriax

Ähnliche Themen

5
Antworten
22
Aufrufe
1.366
590239
5
D
Antworten
23
Aufrufe
2.383
Data2006
D
R
  • Robby1950
2
Antworten
23
Aufrufe
953
Robby1950
R
Zurück
Oben Unten