E-Mail versenden

  • Antworten:23
Robbiani Renato
  • Forum-Beiträge: 602

06.06.2020, 20:59:42 via Website

Hallo zusammen

Ich versuche in meiner App eine E-Mail zu versenden. Aus einer früheren Anfrage

https://www.nextpit.de/forum/805080/mail-versenden-in-kotlin

habe ich ein Beispiel. Dies versuche ich in meiner App zu integrieren.

package ch.robbisoft.mailtest

import android.os.AsyncTask
import android.widget.Toast
import java.io.File
import java.util.*
import javax.activation.DataHandler
import javax.activation.FileDataSource
import javax.mail.*
import javax.mail.internet.InternetAddress
import javax.mail.internet.MimeBodyPart
import javax.mail.internet.MimeMessage
import javax.mail.internet.MimeMultipart
import javax.mail.PasswordAuthentication

class SendMail (private val attachFilePath: String) : AsyncTask() {
private val EMAIL = "...@bluewin.ch" // SMTP Mail Account
private val PASSWORD = "pwd" // SMTP PW
private val SMTPHOST = "smtpauths.bluewin.ch" // SMTP Adresse
private var session: Session? = null

//Information to send email
private val email = "...@bluewin.ch" // Empfänger Adresse
private val subject = "Messdaten"
private val message = "Neue Daten"
public var errorMessage = ""

protected override fun doInBackground(vararg params: Void?): Void? {
    //Creating properties
    val props = Properties()
    props.setProperty("mail.transport.protocol", "smtp")
    props["mail.smtp.host"] = SMTPHOST
    props["mail.smtp.socketFactory.port"] = "465"
    props["mail.smtp.port"] = "465"
    props["mail.smtp.socketFactory.class"] = "javax.net.ssl.SSLSocketFactory"
    props["mail.smtp.auth"] = "true"
    props["mail.smtp.socketFactory.fallback"] = "false"
    props.setProperty("mail.smtp.quitwait", "false")

    //Creating a new session
    session = Session.getDefaultInstance(props, object : Authenticator() {
        //Authenticating the password
        override fun getPasswordAuthentication(): PasswordAuthentication {
            return PasswordAuthentication(EMAIL, PASSWORD)
        }
    })
    try {
        //Creating MimeMessage object
        val mm = MimeMessage(session)
        //Setting sender address
        mm.setFrom(InternetAddress(EMAIL))
        mm.addRecipient(Message.RecipientType.TO, InternetAddress(email))
        mm.subject = subject
        val mp: Multipart = MimeMultipart()
        val htmlPart = MimeBodyPart()
        htmlPart.setContent(message, "text/plain")
        mp.addBodyPart(htmlPart)
        val attachment = MimeBodyPart()
        val source: FileDataSource = FileDataSource(attachFilePath)
        attachment.dataHandler = DataHandler(source)
        attachment.fileName = File(attachFilePath).name
        mp.addBodyPart(attachment)
        mm.setContent(mp)
        //Sending email
        Transport.send(mm)
    } catch (e: MessagingException) {
        e.printStackTrace()
        errorMessage = e.message.toString()
        errorMessage += "\n"
        errorMessage += e.printStackTrace()
    }
    return null
}

}

Leider geht der Programmverlauf immer bei catch vorbei.

javax.mail.internet.ParseException

Ich habe schon einiges geändert. Aber den Fehler kriege ich nicht weg.
Weiss jemand wo ich ansetzen muss?

Gruss Renato

Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

06.06.2020, 22:13:52 via App

In welcher Zeile tritt der Fehler auf

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Kommentieren
Robbiani Renato
  • Forum-Beiträge: 602

06.06.2020, 22:18:45 via Website

Ciao Pascal

Der Fehler tritt beim Senden auf.

Transport.send(mm)

Dann knalts.

Gruss Renato

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.527

07.06.2020, 12:46:51 via Website

Hallo dann schaue dir doch mal deine SMTP Provider Daten an.

https://www.pop3-imap-smtp.de/bluewin-schweiz/

da ist der Port 587 und nicht der übliche 465.

Prüfe ob das Authentifizieren am Server überhaupt erfolgreich war.

— geändert am 07.06.2020, 16:27:09

Hilfreich?
Pascal P.
Kommentieren
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

07.06.2020, 13:06:01 via App

Ich hoffe du willst die App nur selbst nutzen, ansonsten ist das eine schlechte Idee das so zu lösen ;)

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Kommentieren
Robbiani Renato
  • Forum-Beiträge: 602

07.06.2020, 14:32:37 via Website

Ciao Pascal

Es handelt sich nur um eine Test App. Wenn ich es dann in meine App einbaue, wird das schon anders. Vorwiegend möchte ich es für meine Wetterstation verwenden. Dazu benötigt man ein ganz bestimmtes Handy. Also ich denke, dass ich die App schon nur für mich verwenden werde. Aber trotzdem mache ich es dann schon anders.

Gruss Renato

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.527

07.06.2020, 20:16:54 via Website

Leider geht der Programmverlauf immer bei catch vorbei.

wenn es keinen Fehler gibt kommst du auch nicht in Block.
dein Login am Server war bestimmt nicht erfogreich. Das Prüfst du garnicht.

Hilfreich?
Kommentieren
Robbiani Renato
  • Forum-Beiträge: 602

10.06.2020, 18:16:46 via Website

Ciao Jokel

An dem liegt es nicht. Die Fehlermeldung ist immer noch dieselbe.

Gruss Renato

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.527

10.06.2020, 18:26:13 via Website

welcher Fehler kommt den.

bitte Errorlog.

Hilfreich?
Kommentieren
Robbiani Renato
  • Forum-Beiträge: 602

11.06.2020, 08:02:32 via Website

Hier den Fehler:

06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: javax.mail.internet.ParseException

06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.ParameterList.(ParameterList.java:77)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.ContentDisposition.(ContentDisposition.java:69)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1104)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:824)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:216)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1056)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:1923)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:1904)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at javax.mail.Transport.send(Transport.java:79)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at ch.robbisoft.mailtest.SendMail.doInBackground(SendMail.kt:71)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at ch.robbisoft.mailtest.SendMail.doInBackground(SendMail.kt:16)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:288)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at java.lang.Thread.run(Thread.java:818)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: javax.mail.internet.ParseException
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.ParameterList.(ParameterList.java:77)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.ContentDisposition.(ContentDisposition.java:69)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1104)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:824)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:216)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1056)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:1923)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:1904)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at javax.mail.Transport.send(Transport.java:79)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at ch.robbisoft.mailtest.SendMail.doInBackground(SendMail.kt:71)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at ch.robbisoft.mailtest.SendMail.doInBackground(SendMail.kt:16)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:288)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
06-11 07:59:06.416 9661-10174/ch.robbisoft.mailtest W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
06-11 07:59:06.426 9661-10174/ch.robbisoft.mailtest W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
06-11 07:59:06.426 9661-10174/ch.robbisoft.mailtest W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
06-11 07:59:06.426 9661-10174/ch.robbisoft.mailtest W/System.err: at java.lang.Thread.run(Thread.java:818)

Gruss Renato

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.527

11.06.2020, 11:39:04 via Website

Hallo

1.) deine Klassen Definition ist etwas falsch das müsste auch Rot angezeigt werden.

dein Code

class SendMail (private val attachFilePath: String) : AsyncTask() 

besser so

class SendMail (private val attachFilePath: String) : AsyncTask<Void?, Void?, Void?>() 

2.) hast du hier den falschen Daten Typ

dein Code
val source: FileDataSource = FileDataSource(attachFilePath)

benutze DataSource als DatenTyp
val source: DataSource = FileDataSource(attachFilePath)

Ich hoffe du übergibst auch einen gültigen Datei Path an die Klasse (Sting attachFilePath).

PS: Wenn du dir das Beispiel von mir was du verlinkt hast richtig anschaust siehst du auch den Fehler mit den Datentyp.
Und wenn du im Studio genau hinschaust siehst du das dein DatenType grau hinterlegt wird. Also nicht benutzt wird.

— geändert am 11.06.2020, 11:51:46

Hilfreich?
Kommentieren
Robbiani Renato
  • Forum-Beiträge: 602

16.06.2020, 16:35:41 via Website

Ciao Jokel

Ich krieg es einfach nicht hin.
Muss ich bei Sendmeil nur den Pfad zur Datei angeben und nicht auch den Dateinamen? Und wie komme ich zu dem Pfad.

Gruss Renato

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.527

16.06.2020, 17:49:46 via Website

Frage wo ist die Datei in welchen Ordner? Welche Android Version hast du ab 8 ist es nicht mer so leicht auf die sdkarte zuzugreifen.

Klar muss der Datei Name mit dabei sein.

Aber du hastest das doch schon mal zumindestens hast du das im letzten Thread gesagt.

— geändert am 16.06.2020, 18:07:49

Hilfreich?
Kommentieren
Robbiani Renato
  • Forum-Beiträge: 602

16.06.2020, 18:08:37 via Website

Ciao Jokel

Mein Handy hat Android Version 5. Mit dem Pfad habe ich was gebastelt. Aber ich gehe mal davon aus, dass dies nicht korrekt ist. Darum meine Frage.

Gruss Renato

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.527

16.06.2020, 18:30:55 via Website

Dann zeige uns das mal. So kommen wir hier nicht weiter.

Hast du überhaupt den Datentyp angepast wie ich gesagt habe?

— geändert am 16.06.2020, 18:36:09

Hilfreich?
Kommentieren
Robbiani Renato
  • Forum-Beiträge: 602

17.06.2020, 08:11:41 via Website

Ciao Jokel

Der Aufruf vom Mail sieht wie folgt aus

val pfad = Environment.getExternalStorageDirectory().getAbsolutePath() + "/mialtest/"
                var sm2 = SendMail(pfad + "daten.txt")
                sm2.execute()

Es kommt nun folgende Fehlermeldung:

06-17 08:06:58.765 12622-12727/ch.robbisoft.mailtest W/System.err: javax.mail.SendFailedException: Sending failed;

06-17 08:06:58.765 12622-12727/ch.robbisoft.mailtest W/System.err: nested exception is:
06-17 08:06:58.765 12622-12727/ch.robbisoft.mailtest W/System.err: class javax.mail.MessagingException: Unknown SMTP host: smtpauths.bluewin.ch;
06-17 08:06:58.765 12622-12727/ch.robbisoft.mailtest W/System.err: nested exception is:
06-17 08:06:58.765 12622-12727/ch.robbisoft.mailtest W/System.err: java.net.UnknownHostException: Unable to resolve host "smtpauths.bluewin.ch": No address associated with hostname
06-17 08:06:58.765 12622-12727/ch.robbisoft.mailtest W/System.err: at javax.mail.Transport.send0(Transport.java:218)
06-17 08:06:58.765 12622-12727/ch.robbisoft.mailtest W/System.err: at javax.mail.Transport.send(Transport.java:80)
06-17 08:06:58.765 12622-12727/ch.robbisoft.mailtest W/System.err: at ch.robbisoft.mailtest.SendMail.doInBackground(SendMail.kt:73)
06-17 08:06:58.765 12622-12727/ch.robbisoft.mailtest W/System.err: at ch.robbisoft.mailtest.SendMail.doInBackground(SendMail.kt:17)
06-17 08:06:58.765 12622-12727/ch.robbisoft.mailtest W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:288)
06-17 08:06:58.765 12622-12727/ch.robbisoft.mailtest W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
06-17 08:06:58.765 12622-12727/ch.robbisoft.mailtest W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
06-17 08:06:58.765 12622-12727/ch.robbisoft.mailtest W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
06-17 08:06:58.765 12622-12727/ch.robbisoft.mailtest W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
06-17 08:06:58.765 12622-12727/ch.robbisoft.mailtest W/System.err: at java.lang.Thread.run(Thread.java:818)
06-17 08:06:58.775 12622-12727/ch.robbisoft.mailtest W/System.err: javax.mail.SendFailedException: Sending failed;
06-17 08:06:58.775 12622-12727/ch.robbisoft.mailtest W/System.err: nested exception is:
06-17 08:06:58.775 12622-12727/ch.robbisoft.mailtest W/System.err: class javax.mail.MessagingException: Unknown SMTP host: smtpauths.bluewin.ch;
06-17 08:06:58.775 12622-12727/ch.robbisoft.mailtest W/System.err: nested exception is:
06-17 08:06:58.775 12622-12727/ch.robbisoft.mailtest W/System.err: java.net.UnknownHostException: Unable to resolve host "smtpauths.bluewin.ch": No address associated with hostname
06-17 08:06:58.775 12622-12727/ch.robbisoft.mailtest W/System.err: at javax.mail.Transport.send0(Transport.java:218)
06-17 08:06:58.775 12622-12727/ch.robbisoft.mailtest W/System.err: at javax.mail.Transport.send(Transport.java:80)
06-17 08:06:58.775 12622-12727/ch.robbisoft.mailtest W/System.err: at ch.robbisoft.mailtest.SendMail.doInBackground(SendMail.kt:73)
06-17 08:06:58.775 12622-12727/ch.robbisoft.mailtest W/System.err: at ch.robbisoft.mailtest.SendMail.doInBackground(SendMail.kt:17)
06-17 08:06:58.775 12622-12727/ch.robbisoft.mailtest W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:288)
06-17 08:06:58.775 12622-12727/ch.robbisoft.mailtest W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
06-17 08:06:58.775 12622-12727/ch.robbisoft.mailtest W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
06-17 08:06:58.775 12622-12727/ch.robbisoft.mailtest W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
06-17 08:06:58.775 12622-12727/ch.robbisoft.mailtest W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
06-17 08:06:58.775 12622-12727/ch.robbisoft.mailtest W/System.err: at java.lang.Thread.run(Thread.java:818)

Den Dateityp habe ich angepasst. Ich lege noch den vollständigen Code bei. Vielleicht siehst du was.

package ch.robbisoft.mailtest

import android.Manifest
import android.content.Context
import android.content.pm.PackageManager
import android.os.Build
import android.os.Bundle
import android.os.Environment
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import kotlinx.android.synthetic.main.activity_main.*
import java.io.OutputStreamWriter
import java.lang.Exception

class MainActivity : AppCompatActivity() {

var rechte = arrayOf(
        Manifest.permission.INTERNET
)

private var str_text: String? = null
private var ctx: Context? = null

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    ctx = applicationContext
    //prüft ob OS Version > 6 ist, denn vorher kann nicht geprüft werden
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { //prüfen ob Rechte vorhanden sind
        if (pruefrechte()) {
            btn_sendmail.setOnClickListener {
                try {
                    val text = "Das ist ein Text von mir"
                    schreiben(Context.MODE_PRIVATE, text)
                    val pfad = Environment.getExternalStorageDirectory().getAbsolutePath() + "/mialtest/"
                    var sm2 = SendMail(pfad + "daten.txt")
                    sm2.execute()
                }catch (e : Exception){
                    tvError.text = e.message
                }
            }
            str_text = "neue Rechte Mail gesendet"
            Toast.makeText(ctx, str_text, Toast.LENGTH_SHORT).show()
        } else {
        }
    } else {
        btn_sendmail.setOnClickListener {
            try {
                val text = "Das ist ein Text von mir"
                schreiben(Context.MODE_PRIVATE, text)
                val pfad = Environment.getExternalStorageDirectory().getAbsolutePath() + "/mialtest/"
                var sm2 = SendMail(pfad + "daten.txt")
                sm2.execute()
            }catch (e : Exception){
                tvError.text = e.message
            }
        }
        str_text = "alte Rechte Mail gesendet"
        Toast.makeText(ctx, str_text, Toast.LENGTH_SHORT).show()
    }
}

private fun pruefrechte(): Boolean {
    var result: Int
    val listPermissionsNeeded: MutableList<String> = ArrayList<String>()
    for (p in rechte) {
        result = ContextCompat.checkSelfPermission(this, p)
        if (result != PackageManager.PERMISSION_GRANTED) {
            listPermissionsNeeded.add((p))
        }
    }
    if (!listPermissionsNeeded.isEmpty()) {
        ActivityCompat.requestPermissions(this@MainActivity, (listPermissionsNeeded.toTypedArray() as Array<String?>;), MULTIPLE_PERMISSIONS)
        // keine permissions gesetzt
        return false
    }
    // alle permissions gesetzt
    return true
}

override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults)
    when (requestCode) {
        MULTIPLE_PERMISSIONS -> {
            if (grantResults.size > 0) {
                var permissionsDenied = ""
                for (per in permissions) {
                    if (grantResults[0] == PackageManager.PERMISSION_DENIED) {
                        permissionsDenied += "\n" + per
                    }
                }
                // Nach dem ersten Male
            }
            return
        }
    }
}

companion object {
    const val MULTIPLE_PERMISSIONS = 99
}

private fun schreiben(dateimodus : Int, ausgabe : String){
    val datei = openFileOutput("daten.txt", dateimodus)
    val schreiber = OutputStreamWriter(datei)
    schreiber.write(ausgabe)
    schreiber.close()
    datei.close()
}

}

und die Mailklasse

package ch.robbisoft.mailtest

import android.os.AsyncTask
import android.widget.Toast
import java.io.File
import java.util.*
import javax.activation.DataHandler
import javax.activation.DataSource
import javax.activation.FileDataSource
import javax.mail.*
import javax.mail.internet.InternetAddress
import javax.mail.internet.MimeBodyPart
import javax.mail.internet.MimeMessage
import javax.mail.internet.MimeMultipart
import javax.mail.PasswordAuthentication

class SendMail (private val attachFilePath: String) : AsyncTask() {
//Bluewin
private val EMAIL = "...@bluewin.ch" // SMTP Mail Account
private val PASSWORD = "pwd" // SMTP PW
private val SMTPHOST = "smtpauths.bluewin.ch" // SMTP Adresse

private var session: Session? = null

//Information to send email
private val email = "...@bluewin.ch" // Empfänger Adresse
private val subject = "Messdaten"
private val message = "Neue Daten"
public var errorMessage = ""

protected override fun doInBackground(vararg params: Void?): Void? {
    //Creating properties
    val props = Properties()
    props.setProperty("mail.transport.protocol", "smtp")
    props["mail.smtp.host"] = SMTPHOST
    props["mail.smtp.socketFactory.port"] = "465"
    props["mail.smtp.port"] = "465"
    props["mail.smtp.socketFactory.class"] = "javax.net.ssl.SSLSocketFactory"
    props["mail.smtp.auth"] = "true"
    props["mail.smtp.socketFactory.fallback"] = "false"
    props.setProperty("mail.smtp.quitwait", "false")

    //Creating a new session
    session = Session.getDefaultInstance(props, object : Authenticator() {
        //Authenticating the password
        override fun getPasswordAuthentication(): PasswordAuthentication {
            return PasswordAuthentication(EMAIL, PASSWORD)
        }
    })
    try {
        if( session != null) {
            //Creating MimeMessage object
            val mm = MimeMessage(session)
            //Setting sender address
            mm.setFrom(InternetAddress(EMAIL))
            mm.addRecipient(Message.RecipientType.TO, InternetAddress(email))
            mm.subject = subject
            val mp: Multipart = MimeMultipart()
            val htmlPart = MimeBodyPart()
            htmlPart.setContent(message, "text/plain")
            mp.addBodyPart(htmlPart)
            val attachment = MimeBodyPart()
            val source: DataSource = FileDataSource(attachFilePath)
            attachment.dataHandler = DataHandler(source)
            attachment.fileName = File(attachFilePath).name
            mp.addBodyPart(attachment)
            mm.setContent(mp)
            //Sending email
            Transport.send(mm)
        }
    } catch (e: MessagingException) {
        e.printStackTrace()
        errorMessage = e.message.toString()
        errorMessage += "\n"
        errorMessage += e.printStackTrace()
    }
    return null
}

}

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.527

17.06.2020, 16:17:54 via Website

Hallo also ich sehe keinen direkten Fehler.
Das ist eigentlich auch kein Error sondern nur eine Warnung.

Der Path sollte unter Android 5 gehen. Wenn auch der Ordner und die Datei vorhanden sind.

Ich denke es liegt doch immer noch an deinen Ports den da benutzt Bluemail 587 das kannst du auch auf allen Webseiten lesen. Hatte ich auch schon geschrieben.
Selbst hier zum einrichten für Outlook wird 587 benutzt.
https://e1de.com/bluewin-bei-outlook-einrichten/

Außerdem hast du auch eine Meldung das er nicht richtig mit dem Server verbunden ist.
bzw die Adresse nicht auflösen kann.
Somit könnte es auch ein Netzwerk, Firewall Problem sein.

06-17 08:06:58.765 12622-12727/ch.robbisoft.mailtest W/System.err: java.net.UnknownHostException: Unable to resolve host "smtpauths.bluewin.ch": No address associated with hostname
06-17 08:06:58.765 12622-12727/ch.robbisoft.mailtest W/System.err: at javax.mail.Transport.send0(Transport.java:218)

oder deine Zugangsdaten nind falsch.

Tipp benutze mal einen andern FreeMailer

— geändert am 17.06.2020, 16:29:05

Hilfreich?
Kommentieren
Robbiani Renato
  • Forum-Beiträge: 602

17.06.2020, 18:01:04 via Website

Ciao Jokel

Danke für deine Hilfe. Das mit dem Port habe ich bereits ausprobiert. Bringt kein Erfolg. In meinem Mailprogramm habe ich es mit diesem Port eingerichtet und es funktioniert. Aber ich werde es nochmals versuchen.

Das mit einem anderen Provider habe ich auch schon versucht. Aber ich werde auch dies nochmals versuchen.

Gruss Renato

Hilfreich?
Kommentieren
Robbiani Renato
  • Forum-Beiträge: 602

17.06.2020, 18:12:39 via Website

Nun kriege ich folgende Warnung:

06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: javax.mail.internet.ParseException

06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.ContentType.(ContentType.java:71)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1051)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:824)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:216)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1056)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:1923)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:1904)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at javax.mail.Transport.send(Transport.java:79)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at ch.robbisoft.mailtest.SendMail.doInBackground(SendMail.kt:73)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at ch.robbisoft.mailtest.SendMail.doInBackground(SendMail.kt:17)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:288)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at java.lang.Thread.run(Thread.java:818)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: javax.mail.internet.ParseException
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.ContentType.(ContentType.java:71)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1051)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:824)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:216)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1056)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:1923)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:1904)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at javax.mail.Transport.send(Transport.java:79)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at ch.robbisoft.mailtest.SendMail.doInBackground(SendMail.kt:73)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at ch.robbisoft.mailtest.SendMail.doInBackground(SendMail.kt:17)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:288)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
06-17 18:10:33.938 18858-18950/ch.robbisoft.mailtest W/System.err: at java.lang.Thread.run(Thread.java:818)

Ich denke, dass ich bei "MimeBodyPart" was falsch mache.

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.527

17.06.2020, 18:17:17 via Website

Ist denn die Datei überhaupt vorhanden und hast du auch Zugriff auf die dadei?

Die genannte Warnung sagt arber das er die Adresse nicht auflösen kann.

Unable to resolve host "smtpauths.bluewin.ch": No address associated with hostname

Prüfe dein Netzwerk Hast du überhaupt in deiner app eine Netzwerk Verbindung auch die permission gesetzt.

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.527

17.06.2020, 18:22:23 via Website

ps du warst schmeller.

kann auch sein.

jetzt hast du auch nicht mehr den verbindungs fehler also doch der Port.

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.527

17.06.2020, 18:29:16 via Website

ist ja wieder der gleiche Fehler wie du schon hattest also wieder DatenTyp.

Hilfreich?
Kommentieren
Robbiani Renato
  • Forum-Beiträge: 602

20.06.2020, 21:08:55 via Website

Die Datei ist vorhanden und ich habe auch zugriff darauf. Auch die Rechte habe ich zugeteilt.
Den Pfad zur Datei ermittle ich nun auf diesem Weg.

val pfad = getDatabasePath(DATEI)
                    var sm2 = SendMail(pfad.absolutePath)
                    sm2.execute()

Nun kommt die folgende Warnung aber noch immer kein Mail

06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: javax.mail.internet.ParseException

06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.ContentType.(ContentType.java:71)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1051)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:824)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:216)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1056)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:1923)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:1904)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at javax.mail.Transport.send(Transport.java:79)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at ch.robbisoft.mailtest.SendMail.doInBackground(SendMail.kt:73)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at ch.robbisoft.mailtest.SendMail.doInBackground(SendMail.kt:17)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:288)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at java.lang.Thread.run(Thread.java:818)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: javax.mail.internet.ParseException
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.ContentType.(ContentType.java:71)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1051)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:824)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:216)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1056)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:1923)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:1904)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at javax.mail.Transport.send(Transport.java:79)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at ch.robbisoft.mailtest.SendMail.doInBackground(SendMail.kt:73)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at ch.robbisoft.mailtest.SendMail.doInBackground(SendMail.kt:17)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:288)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
06-20 20:55:29.343 12714-12804/ch.robbisoft.mailtest W/System.err: at java.lang.Thread.run(Thread.java:818)

Ich weiss nicht was ich noch ändern kann.

Gruss Renato

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.527

21.06.2020, 16:15:58 via Website

Hallo jedes Mal wenn du dich meldest bringt du eine anderen Path.
Dann schaue doch mal was in der Variablen pfad ist.
Das was du hier abfragst ist der Patt zu den Speicher Ort der SQLite DB. Das was du da bekommst ist auch keine „Text“ Datei nur der Ordner in dem die DB enthalten ist.
Die DB als "text/plain" zuschicken wird auch nicht gehen.

— geändert am 21.06.2020, 16:16:39

Hilfreich?
Kommentieren