0

メール サービスで Javamail を使用しています。これは私のコードです:

   public static void send( final String username, final String password, String recipientEmail, String ccEmail, String title, String message,
                         String from, String host, String port )
    throws AddressException, MessagingException
{
    Session session;

    Properties props = System.getProperties();
    props.setProperty( "mail.smtps.host", host );
    props.setProperty( "mail.smtp.port", port );

    session = Session.getInstance( props, null );

    // -- Create a new message --
    final MimeMessage msg = new MimeMessage( session );

    // -- Set the FROM and TO fields --
    msg.setFrom( new InternetAddress( username ) );
    msg.setRecipients( Message.RecipientType.TO, InternetAddress.parse( recipientEmail, false ) );

    if ( ccEmail.length() > 0 )
    {
        msg.setRecipients( Message.RecipientType.CC, InternetAddress.parse( ccEmail, false ) );
    }

    msg.setSubject( title, "utf-8" );
    msg.setFrom( new InternetAddress( from ) );
    msg.setText( message, "utf-8" );
    msg.setSentDate( new Date() );

    SMTPTransport t = (SMTPTransport) session.getTransport( "smtps" );

    t.connect( host, username, password );
    t.sendMessage( msg, msg.getAllRecipients() );
    t.close();
}

このメソッドを次のように呼び出します - ユーザー名: mailtest - from: My Super Company <- これは私のドメインです - ホスト: mail.host.com <- これは私のメール プロバイダーです

javamail が私のサービスにmailtest@mysupercompany.comとしてログインしようとして失敗します。たとえば、test@mysupercompany.comから提供すると、正常に動作します。

コンソールでログを確認したところ、ユーザー mailtest@mysupercompany.com が存在しないと表示されています。javamail が mailtest@mysupercompany.com でログインしようとするようなものですが、私のユーザー名mailtestのみを使用する必要があります。

ユーザー名と同じなのに from を使用しているのはなぜですか?

4

1 に答える 1

0

ユーザー名として渡すものは何でも使用する必要があります。期待どおりであることを確認してください。接続呼び出しの前に印刷してください。

session.setDebug(true) を追加します。デバッグ出力には何が表示されますか?

于 2013-05-23T00:24:06.210 に答える