更改电子邮件发件人 - Android

fsdklfm

我正在尝试从我的应用程序发送自动电子邮件。我尝试了很多教程,但只有其中一个有效。问题是我想将发件人从电子邮件更改为姓名。

这是一张图片预览发送的电子邮件.

这些是工作代码(我不知道为什么教程中的其他代码没有):

GMail.java

import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import android.util.Log;

public class GMail {

    final String emailPort = "587";// gmail's smtp port
    final String smtpAuth = "true";
    final String starttls = "true";
    final String emailHost = "smtp.gmail.com";

    String fromEmail;
    String fromPassword;
    @SuppressWarnings("rawtypes")
    String toEmailList;
    String emailSubject;
    String emailBody;

    Properties emailProperties;
    Session mailSession;
    MimeMessage emailMessage;

    public GMail() {

    }

    @SuppressWarnings("rawtypes")
    public GMail(String fromEmail, String fromPassword,
                    String toEmailList, String emailSubject, String emailBody) {
        this.fromEmail = fromEmail;
        this.fromPassword = fromPassword;
        this.toEmailList = toEmailList;
        this.emailSubject = emailSubject;
        this.emailBody = emailBody;

        emailProperties = System.getProperties();
        emailProperties.put("mail.smtp.port", emailPort);
        emailProperties.put("mail.smtp.auth", smtpAuth);
        emailProperties.put("mail.smtp.starttls.enable", starttls);
        Log.i("GMail", "Mail server properties set.");
    }

    public MimeMessage createEmailMessage() throws AddressException,
            MessagingException, UnsupportedEncodingException {

        mailSession = Session.getDefaultInstance(emailProperties, null);
        emailMessage = new MimeMessage(mailSession);

        emailMessage.setFrom(new InternetAddress(fromEmail, fromEmail));

        Log.i("GMail","toEmail: "+toEmailList);
        emailMessage.addRecipient(Message.RecipientType.TO,
                new InternetAddress(toEmailList));


        emailMessage.setSubject(emailSubject);
        emailMessage.setContent(emailBody, "text/html");// for a html email
        // emailMessage.setText(emailBody);// for a text email
        Log.i("GMail", "Email Message created.");
        return emailMessage;
    }

    public void sendEmail() throws AddressException, MessagingException {

        Transport transport = mailSession.getTransport("smtp");
        transport.connect(emailHost, fromEmail, fromPassword);
        Log.i("GMail","allrecipients: "+emailMessage.getAllRecipients());
        transport.sendMessage(emailMessage, emailMessage.getAllRecipients());
        transport.close();
        Log.i("GMail", "Email sent successfully.");

    }


}

发送邮件任务.java

import java.util.List;

import android.app.Activity;
import android.app.ProgressDialog;
import android.app.AlertDialog.Builder;
import android.os.AsyncTask;
import android.util.Log;

@SuppressWarnings("rawtypes")
public class SendMailTask extends AsyncTask {

    private Activity sendMailActivity;

    public SendMailTask(Activity activity) {
        sendMailActivity = activity;

    }

    protected void onPreExecute() {

    }

    @SuppressWarnings("unchecked")
    @Override
    protected Object doInBackground(Object... args) {
        try {
            Log.i("SendMailTask", "About to instantiate GMail...");
            publishProgress("Processing input....");
            GMail androidEmail = new GMail(args[0].toString(),
                    args[1].toString(),  args[2].toString(), args[3].toString(),
                    args[4].toString());
            publishProgress("Preparing mail message....");
            androidEmail.createEmailMessage();
            publishProgress("Sending email....");
            androidEmail.sendEmail();
            publishProgress("Email Sent.");
            Log.i("SendMailTask", "Mail Sent.");


        } catch (Exception e) {
            publishProgress(e.getMessage());
            Log.e("SendMailTask", e.getMessage(), e);
        }
        return null;
    }

    @Override
    public void onProgressUpdate(Object... values) {

    }

    @Override
    public void onPostExecute(Object result) {

    }


}


MainActivity.java 中的 onButtonClick 方法:

String fromEmail = "[email protected]";
String fromPassword = "email-password";
String toEmails = "[email protected]";
String emailSubject = "App Registration Mail";
String emailBody = "Your message";
new SendMailTask(PlayerMainActivity.this).execute(fromEmail, fromPassword, toEmails, emailSubject, emailBody);

并且确定在文件libs中添加了 3 个 jar 文件

我想将电子邮件中的电子邮件(即 [email protected])更改为特定名称(例如 The App Team)。我怎样才能做到这一点?

苏米特·舒克拉

代替

emailMessage.setFrom(new InternetAddress(fromEmail, fromEmail));

emailMessage.setFrom(new InternetAddress(fromEmail, "Sender Name Here"));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Android 应用程序发送电子邮件确认没有发件人姓名

跟踪电子邮件发件人

自动电子邮件发件人

在Woocommerce中将发件人电子邮件更改为客户账单电子邮件

是否可以将分发列表的“发件人:”地址更改为分发列表电子邮件地址而不是发件人的电子邮件地址?

更改特定WooCommerce电子邮件通知的发件人姓名和电子邮件地址

更改发件人电子邮件标头是否有负面影响?

如何在WooCommerce中基于产品ID更改发件人电子邮件

通过smtp发送电子邮件并更改发件人的姓名

在 WooCommerce 电子邮件通知中将发件人姓名更改为客户账单全名

如何自动转发电子邮件并更改发件人?

在laravel 5中更改电子邮件的默认“发件人”字段

如何在Django中更改发件人电子邮件名称

根据发件人的电子邮件地址更改mutt中的SMTP身份验证

如何使用Outlook或Exchange Online更改电子邮件标题中的“发件人:”字段?

如何从Gitlab电子邮件中更改发件人姓名

从gmail-api获取发件人电子邮件

获取发件人电子邮件地址

如何跟踪电子邮件发件人的实际IP?

Rails、交易电子邮件和发件人验证

交易 smtp 电子邮件服务发件人

如何获得发件人的电子邮件地址?

如何欺骗发件人电子邮件地址?

从附件获取发件人电子邮件地址

为什么电子邮件允许发件人模拟?

电子邮件轮询:阅读主题和发件人

让用户定义电子邮件的发件人

电子邮件发件人调整需要帮助

DocuSign API - 设置信封/电子邮件通知的“发件人姓名”和“发件人电子邮件”