通过Kotlin发送电子邮件

时间:2018-12-31 17:32:08

标签: android android-studio email kotlin javamail

我正在使用下面的代码发送电子邮件,但要求提供Gmail凭据。我正在寻找一些类似于mailx的命令,它需要在不询问任何凭据的情况下发送特定地址的电子邮件。任何帮助表示赞赏。

代码

class MainActivity : AppCompatActivity() {

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

        val button: Button = findViewById(R.id.button)
        val editTextTo: EditText = findViewById(R.id.editTextTo)

        button.setOnClickListener(View.OnClickListener {
            val to = editTextTo.getText().toString()
            val subject = "Test"
            val message = "Test"

            val intent = Intent(Intent.ACTION_SEND)
            val addressees = arrayOf(to)
            intent.putExtra(Intent.EXTRA_EMAIL, addressees)
            intent.putExtra(Intent.EXTRA_SUBJECT, subject)
            intent.putExtra(Intent.EXTRA_TEXT, message)
            intent.setType("message/rfc822")
            startActivity(Intent.createChooser(intent, "Send Email using:"));
        })
    }
}

1 个答案:

答案 0 :(得分:0)

有一种Java解决方案试图使您的Kotlin成为一体(对不起,我不喜欢Kotlin)。

将此添加到您的gradle中

implementation 'com.sun.mail:android-mail:1.6.0'
implementation 'com.sun.mail:android-activation:1.6.0'

并添加这两个classes,一个用于创建SMTP服务器,另一个用于安全目的,并按如下方式调用它:

GMailSender sender = new GMailSender(
                        "you_email@gmail.com",
                        "password");

sender.sendMail(subject, message,sender,recipients);